R : Copyright 2005, The R Foundation for Statistical Computing Version 2.1.1 (2005-06-20), ISBN 3-900051-07-0 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for a HTML browser interface to help. Type 'q()' to quit R. > ### *
> ### > attach(NULL, name = "CheckExEnv") > assign(".CheckExEnv", as.environment(2), pos = length(search())) # base > ## add some hooks to label plot pages for base and grid graphics > setHook("plot.new", ".newplot.hook") > setHook("persp", ".newplot.hook") > setHook("grid.newpage", ".gridplot.hook") > > assign("cleanEx", + function(env = .GlobalEnv) { + rm(list = ls(envir = env, all.names = TRUE), envir = env) + RNGkind("default", "default") + set.seed(1) + options(warn = 1) + delayedAssign("T", stop("T used instead of TRUE"), + assign.env = .CheckExEnv) + delayedAssign("F", stop("F used instead of FALSE"), + assign.env = .CheckExEnv) + sch <- search() + newitems <- sch[! sch %in% .oldSearch] + for(item in rev(newitems)) + eval(substitute(detach(item), list(item=item))) + missitems <- .oldSearch[! .oldSearch %in% sch] + if(length(missitems)) + warning("items ", paste(missitems, collapse=", "), + " have been removed from the search path") + }, + env = .CheckExEnv) > assign("..nameEx", "__{must remake R-ex/*.R}__", env = .CheckExEnv) # for now > assign("ptime", proc.time(), env = .CheckExEnv) > grDevices::postscript("magic-Examples.ps") > assign("par.postscript", graphics::par(no.readonly = TRUE), env = .CheckExEnv) > options(contrasts = c(unordered = "contr.treatment", ordered = "contr.poly")) > options(warn = 1) > library('magic') Loading required package: abind > > assign(".oldSearch", search(), env = .CheckExEnv) > assign(".oldNS", loadedNamespaces(), env = .CheckExEnv) > cleanEx(); ..nameEx <- "Frankenstein" > > ### * Frankenstein > > flush(stderr()); flush(stdout()) > > ### Name: Frankenstein > ### Title: A perfect magic cube due to Frankenstein > ### Aliases: Frankenstein > ### Keywords: datasets > > ### ** Examples > > data(Frankenstein) > is.perfect(Frankenstein) [1] TRUE > > > > cleanEx(); ..nameEx <- "Ollerenshaw" > > ### * Ollerenshaw > > flush(stderr()); flush(stdout()) > > ### Name: Ollerenshaw > ### Title: A most perfect square due to Ollerenshaw > ### Aliases: Ollerenshaw > ### Keywords: datasets > > ### ** Examples > > data(Ollerenshaw) > is.mostperfect(Ollerenshaw) [1] TRUE > > > > cleanEx(); ..nameEx <- "adiag" > > ### * adiag > > flush(stderr()); flush(stdout()) > > ### Name: adiag > ### Title: Binds arrays corner-to-corner > ### Aliases: adiag > ### Keywords: array > > ### ** Examples > > a <- array( 1,c(2,2)) > b <- array(-1,c(2,2)) > adiag(a,b) [,1] [,2] [,3] [,4] [1,] 1 1 0 0 [2,] 1 1 0 0 [3,] 0 0 -1 -1 [4,] 0 0 -1 -1 > > ##dropped dimensions can count: > > b2 <- b1 <- b > dim(a) <- c(2,1,2) > dim(b1) <- c(2,2,1) > dim(b2) <- c(1,2,2) > > dim(adiag(a,b1)) [1] 4 3 3 > dim(adiag(a,b2)) [1] 3 3 4 > > ##dimnames are preserved if not null: > > a <- matrix(1,2,2,dimnames=list(col=c("red","blue"),size=c("big","small"))) > b <- 8 > dim(b) <- c(1,1) > dimnames(b) <- list(col=c("green"),size=c("tiny")) > adiag(a,b) #dimnames preserved size col big small tiny red 1 1 0 blue 1 1 0 green 0 0 8 > adiag(a,8) #dimnames lost because second argument has none. [,1] [,2] [,3] [1,] 1 1 0 [2,] 1 1 0 [3,] 0 0 8 > > ##non scalar values for pad can be confusing: > q <- matrix(0,3,3) > adiag(q,q,pad=1:4) [,1] [,2] [,3] [,4] [,5] [,6] [1,] 0 0 0 3 1 3 [2,] 0 0 0 4 2 4 [3,] 0 0 0 1 3 1 [4,] 4 2 4 0 0 0 [5,] 1 3 1 0 0 0 [6,] 2 4 2 0 0 0 > > ##following example should make the pattern clear: > adiag(q,q,pad=1:36) [,1] [,2] [,3] [,4] [,5] [,6] [1,] 0 0 0 19 25 31 [2,] 0 0 0 20 26 32 [3,] 0 0 0 21 27 33 [4,] 4 10 16 0 0 0 [5,] 5 11 17 0 0 0 [6,] 6 12 18 0 0 0 > > > > > cleanEx(); ..nameEx <- "allsubhypercubes" > > ### * allsubhypercubes > > flush(stderr()); flush(stdout()) > > ### Name: allsubhypercubes > ### Title: Subhypercubes of magic hypercubes > ### Aliases: allsubhypercubes > ### Keywords: array > > ### ** Examples > > a <- magichypercube.4n(1,d=4) > allsubhypercubes(a) $"i,i,," , , 1 [,1] [,2] [,3] [,4] [1,] 1 192 128 193 [2,] 240 81 145 48 [3,] 224 97 161 32 [4,] 49 144 80 241 , , 2 [,1] [,2] [,3] [,4] [1,] 6 187 123 198 [2,] 235 86 150 43 [3,] 219 102 166 27 [4,] 54 139 75 246 , , 3 [,1] [,2] [,3] [,4] [1,] 11 182 118 203 [2,] 230 91 155 38 [3,] 214 107 171 22 [4,] 59 134 70 251 , , 4 [,1] [,2] [,3] [,4] [1,] 16 177 113 208 [2,] 225 96 160 33 [3,] 209 112 176 17 [4,] 64 129 65 256 $"n-i+1,i,," , , 1 [,1] [,2] [,3] [,4] [1,] 4 189 125 196 [2,] 237 84 148 45 [3,] 221 100 164 29 [4,] 52 141 77 244 , , 2 [,1] [,2] [,3] [,4] [1,] 7 186 122 199 [2,] 234 87 151 42 [3,] 218 103 167 26 [4,] 55 138 74 247 , , 3 [,1] [,2] [,3] [,4] [1,] 10 183 119 202 [2,] 231 90 154 39 [3,] 215 106 170 23 [4,] 58 135 71 250 , , 4 [,1] [,2] [,3] [,4] [1,] 13 180 116 205 [2,] 228 93 157 36 [3,] 212 109 173 20 [4,] 61 132 68 253 $"i,n-i+1,," , , 1 [,1] [,2] [,3] [,4] [1,] 13 180 116 205 [2,] 228 93 157 36 [3,] 212 109 173 20 [4,] 61 132 68 253 , , 2 [,1] [,2] [,3] [,4] [1,] 10 183 119 202 [2,] 231 90 154 39 [3,] 215 106 170 23 [4,] 58 135 71 250 , , 3 [,1] [,2] [,3] [,4] [1,] 7 186 122 199 [2,] 234 87 151 42 [3,] 218 103 167 26 [4,] 55 138 74 247 , , 4 [,1] [,2] [,3] [,4] [1,] 4 189 125 196 [2,] 237 84 148 45 [3,] 221 100 164 29 [4,] 52 141 77 244 $"n-i+1,n-i+1,," , , 1 [,1] [,2] [,3] [,4] [1,] 16 177 113 208 [2,] 225 96 160 33 [3,] 209 112 176 17 [4,] 64 129 65 256 , , 2 [,1] [,2] [,3] [,4] [1,] 11 182 118 203 [2,] 230 91 155 38 [3,] 214 107 171 22 [4,] 59 134 70 251 , , 3 [,1] [,2] [,3] [,4] [1,] 6 187 123 198 [2,] 235 86 150 43 [3,] 219 102 166 27 [4,] 54 139 75 246 , , 4 [,1] [,2] [,3] [,4] [1,] 1 192 128 193 [2,] 240 81 145 48 [3,] 224 97 161 32 [4,] 49 144 80 241 $"i,,i," , , 1 [,1] [,2] [,3] [,4] [1,] 1 192 128 193 [2,] 252 69 133 60 [3,] 248 73 137 56 [4,] 13 180 116 205 , , 2 [,1] [,2] [,3] [,4] [1,] 18 175 111 210 [2,] 235 86 150 43 [3,] 231 90 154 39 [4,] 30 163 99 222 , , 3 [,1] [,2] [,3] [,4] [1,] 35 158 94 227 [2,] 218 103 167 26 [3,] 214 107 171 22 [4,] 47 146 82 239 , , 4 [,1] [,2] [,3] [,4] [1,] 52 141 77 244 [2,] 201 120 184 9 [3,] 197 124 188 5 [4,] 64 129 65 256 $"n-i+1,,i," , , 1 [,1] [,2] [,3] [,4] [1,] 4 189 125 196 [2,] 249 72 136 57 [3,] 245 76 140 53 [4,] 16 177 113 208 , , 2 [,1] [,2] [,3] [,4] [1,] 19 174 110 211 [2,] 234 87 151 42 [3,] 230 91 155 38 [4,] 31 162 98 223 , , 3 [,1] [,2] [,3] [,4] [1,] 34 159 95 226 [2,] 219 102 166 27 [3,] 215 106 170 23 [4,] 46 147 83 238 , , 4 [,1] [,2] [,3] [,4] [1,] 49 144 80 241 [2,] 204 117 181 12 [3,] 200 121 185 8 [4,] 61 132 68 253 $",i,i," , , 1 [,1] [,2] [,3] [,4] [1,] 1 192 128 193 [2,] 255 66 130 63 [3,] 254 67 131 62 [4,] 4 189 125 196 , , 2 [,1] [,2] [,3] [,4] [1,] 21 172 108 213 [2,] 235 86 150 43 [3,] 234 87 151 42 [4,] 24 169 105 216 , , 3 [,1] [,2] [,3] [,4] [1,] 41 152 88 233 [2,] 215 106 170 23 [3,] 214 107 171 22 [4,] 44 149 85 236 , , 4 [,1] [,2] [,3] [,4] [1,] 61 132 68 253 [2,] 195 126 190 3 [3,] 194 127 191 2 [4,] 64 129 65 256 $"i,i,i," [,1] [,2] [,3] [,4] [1,] 1 235 214 64 [2,] 192 86 107 129 [3,] 128 150 171 65 [4,] 193 43 22 256 $"n-i+1,i,i," [,1] [,2] [,3] [,4] [1,] 4 234 215 61 [2,] 189 87 106 132 [3,] 125 151 170 68 [4,] 196 42 23 253 $",n-i+1,i," , , 1 [,1] [,2] [,3] [,4] [1,] 13 180 116 205 [2,] 243 78 142 51 [3,] 242 79 143 50 [4,] 16 177 113 208 , , 2 [,1] [,2] [,3] [,4] [1,] 25 168 104 217 [2,] 231 90 154 39 [3,] 230 91 155 38 [4,] 28 165 101 220 , , 3 [,1] [,2] [,3] [,4] [1,] 37 156 92 229 [2,] 219 102 166 27 [3,] 218 103 167 26 [4,] 40 153 89 232 , , 4 [,1] [,2] [,3] [,4] [1,] 49 144 80 241 [2,] 207 114 178 15 [3,] 206 115 179 14 [4,] 52 141 77 244 $"i,n-i+1,i," [,1] [,2] [,3] [,4] [1,] 13 231 218 52 [2,] 180 90 103 141 [3,] 116 154 167 77 [4,] 205 39 26 244 $"n-i+1,n-i+1,i," [,1] [,2] [,3] [,4] [1,] 16 230 219 49 [2,] 177 91 102 144 [3,] 113 155 166 80 [4,] 208 38 27 241 $"i,,n-i+1," , , 1 [,1] [,2] [,3] [,4] [1,] 49 144 80 241 [2,] 204 117 181 12 [3,] 200 121 185 8 [4,] 61 132 68 253 , , 2 [,1] [,2] [,3] [,4] [1,] 34 159 95 226 [2,] 219 102 166 27 [3,] 215 106 170 23 [4,] 46 147 83 238 , , 3 [,1] [,2] [,3] [,4] [1,] 19 174 110 211 [2,] 234 87 151 42 [3,] 230 91 155 38 [4,] 31 162 98 223 , , 4 [,1] [,2] [,3] [,4] [1,] 4 189 125 196 [2,] 249 72 136 57 [3,] 245 76 140 53 [4,] 16 177 113 208 $"n-i+1,,n-i+1," , , 1 [,1] [,2] [,3] [,4] [1,] 52 141 77 244 [2,] 201 120 184 9 [3,] 197 124 188 5 [4,] 64 129 65 256 , , 2 [,1] [,2] [,3] [,4] [1,] 35 158 94 227 [2,] 218 103 167 26 [3,] 214 107 171 22 [4,] 47 146 82 239 , , 3 [,1] [,2] [,3] [,4] [1,] 18 175 111 210 [2,] 235 86 150 43 [3,] 231 90 154 39 [4,] 30 163 99 222 , , 4 [,1] [,2] [,3] [,4] [1,] 1 192 128 193 [2,] 252 69 133 60 [3,] 248 73 137 56 [4,] 13 180 116 205 $",i,n-i+1," , , 1 [,1] [,2] [,3] [,4] [1,] 49 144 80 241 [2,] 207 114 178 15 [3,] 206 115 179 14 [4,] 52 141 77 244 , , 2 [,1] [,2] [,3] [,4] [1,] 37 156 92 229 [2,] 219 102 166 27 [3,] 218 103 167 26 [4,] 40 153 89 232 , , 3 [,1] [,2] [,3] [,4] [1,] 25 168 104 217 [2,] 231 90 154 39 [3,] 230 91 155 38 [4,] 28 165 101 220 , , 4 [,1] [,2] [,3] [,4] [1,] 13 180 116 205 [2,] 243 78 142 51 [3,] 242 79 143 50 [4,] 16 177 113 208 $"i,i,n-i+1," [,1] [,2] [,3] [,4] [1,] 49 219 230 16 [2,] 144 102 91 177 [3,] 80 166 155 113 [4,] 241 27 38 208 $"n-i+1,i,n-i+1," [,1] [,2] [,3] [,4] [1,] 52 218 231 13 [2,] 141 103 90 180 [3,] 77 167 154 116 [4,] 244 26 39 205 $",n-i+1,n-i+1," , , 1 [,1] [,2] [,3] [,4] [1,] 61 132 68 253 [2,] 195 126 190 3 [3,] 194 127 191 2 [4,] 64 129 65 256 , , 2 [,1] [,2] [,3] [,4] [1,] 41 152 88 233 [2,] 215 106 170 23 [3,] 214 107 171 22 [4,] 44 149 85 236 , , 3 [,1] [,2] [,3] [,4] [1,] 21 172 108 213 [2,] 235 86 150 43 [3,] 234 87 151 42 [4,] 24 169 105 216 , , 4 [,1] [,2] [,3] [,4] [1,] 1 192 128 193 [2,] 255 66 130 63 [3,] 254 67 131 62 [4,] 4 189 125 196 $"i,n-i+1,n-i+1," [,1] [,2] [,3] [,4] [1,] 61 215 234 4 [2,] 132 106 87 189 [3,] 68 170 151 125 [4,] 253 23 42 196 $"n-i+1,n-i+1,n-i+1," [,1] [,2] [,3] [,4] [1,] 64 214 235 1 [2,] 129 107 86 192 [3,] 65 171 150 128 [4,] 256 22 43 193 $"i,,,i" , , 1 [,1] [,2] [,3] [,4] [1,] 1 240 224 49 [2,] 252 21 37 204 [3,] 248 25 41 200 [4,] 13 228 212 61 , , 2 [,1] [,2] [,3] [,4] [1,] 66 175 159 114 [2,] 187 86 102 139 [3,] 183 90 106 135 [4,] 78 163 147 126 , , 3 [,1] [,2] [,3] [,4] [1,] 131 110 94 179 [2,] 122 151 167 74 [3,] 118 155 171 70 [4,] 143 98 82 191 , , 4 [,1] [,2] [,3] [,4] [1,] 196 45 29 244 [2,] 57 216 232 9 [3,] 53 220 236 5 [4,] 208 33 17 256 $"n-i+1,,,i" , , 1 [,1] [,2] [,3] [,4] [1,] 4 237 221 52 [2,] 249 24 40 201 [3,] 245 28 44 197 [4,] 16 225 209 64 , , 2 [,1] [,2] [,3] [,4] [1,] 67 174 158 115 [2,] 186 87 103 138 [3,] 182 91 107 134 [4,] 79 162 146 127 , , 3 [,1] [,2] [,3] [,4] [1,] 130 111 95 178 [2,] 123 150 166 75 [3,] 119 154 170 71 [4,] 142 99 83 190 , , 4 [,1] [,2] [,3] [,4] [1,] 193 48 32 241 [2,] 60 213 229 12 [3,] 56 217 233 8 [4,] 205 36 20 253 $",i,,i" , , 1 [,1] [,2] [,3] [,4] [1,] 1 240 224 49 [2,] 255 18 34 207 [3,] 254 19 35 206 [4,] 4 237 221 52 , , 2 [,1] [,2] [,3] [,4] [1,] 69 172 156 117 [2,] 187 86 102 139 [3,] 186 87 103 138 [4,] 72 169 153 120 , , 3 [,1] [,2] [,3] [,4] [1,] 137 104 88 185 [2,] 119 154 170 71 [3,] 118 155 171 70 [4,] 140 101 85 188 , , 4 [,1] [,2] [,3] [,4] [1,] 205 36 20 253 [2,] 51 222 238 3 [3,] 50 223 239 2 [4,] 208 33 17 256 $"i,i,,i" [,1] [,2] [,3] [,4] [1,] 1 187 118 208 [2,] 240 86 155 33 [3,] 224 102 171 17 [4,] 49 139 70 256 $"n-i+1,i,,i" [,1] [,2] [,3] [,4] [1,] 4 186 119 205 [2,] 237 87 154 36 [3,] 221 103 170 20 [4,] 52 138 71 253 $",n-i+1,,i" , , 1 [,1] [,2] [,3] [,4] [1,] 13 228 212 61 [2,] 243 30 46 195 [3,] 242 31 47 194 [4,] 16 225 209 64 , , 2 [,1] [,2] [,3] [,4] [1,] 73 168 152 121 [2,] 183 90 106 135 [3,] 182 91 107 134 [4,] 76 165 149 124 , , 3 [,1] [,2] [,3] [,4] [1,] 133 108 92 181 [2,] 123 150 166 75 [3,] 122 151 167 74 [4,] 136 105 89 184 , , 4 [,1] [,2] [,3] [,4] [1,] 193 48 32 241 [2,] 63 210 226 15 [3,] 62 211 227 14 [4,] 196 45 29 244 $"i,n-i+1,,i" [,1] [,2] [,3] [,4] [1,] 13 183 122 196 [2,] 228 90 151 45 [3,] 212 106 167 29 [4,] 61 135 74 244 $"n-i+1,n-i+1,,i" [,1] [,2] [,3] [,4] [1,] 16 182 123 193 [2,] 225 91 150 48 [3,] 209 107 166 32 [4,] 64 134 75 241 $",,i,i" , , 1 [,1] [,2] [,3] [,4] [1,] 1 252 248 13 [2,] 255 6 10 243 [3,] 254 7 11 242 [4,] 4 249 245 16 , , 2 [,1] [,2] [,3] [,4] [1,] 81 172 168 93 [2,] 175 86 90 163 [3,] 174 87 91 162 [4,] 84 169 165 96 , , 3 [,1] [,2] [,3] [,4] [1,] 161 92 88 173 [2,] 95 166 170 83 [3,] 94 167 171 82 [4,] 164 89 85 176 , , 4 [,1] [,2] [,3] [,4] [1,] 241 12 8 253 [2,] 15 246 250 3 [3,] 14 247 251 2 [4,] 244 9 5 256 $"i,,i,i" [,1] [,2] [,3] [,4] [1,] 1 175 94 244 [2,] 252 86 167 9 [3,] 248 90 171 5 [4,] 13 163 82 256 $"n-i+1,,i,i" [,1] [,2] [,3] [,4] [1,] 4 174 95 241 [2,] 249 87 166 12 [3,] 245 91 170 8 [4,] 16 162 83 253 $",i,i,i" [,1] [,2] [,3] [,4] [1,] 1 172 88 253 [2,] 255 86 170 3 [3,] 254 87 171 2 [4,] 4 169 85 256 $"i,i,i,i" [1] 1 86 171 256 $"n-i+1,i,i,i" [1] 4 87 170 253 $",n-i+1,i,i" [,1] [,2] [,3] [,4] [1,] 13 168 92 241 [2,] 243 90 166 15 [3,] 242 91 167 14 [4,] 16 165 89 244 $"i,n-i+1,i,i" [1] 13 90 167 244 $"n-i+1,n-i+1,i,i" [1] 16 91 166 241 $",,n-i+1,i" , , 1 [,1] [,2] [,3] [,4] [1,] 49 204 200 61 [2,] 207 54 58 195 [3,] 206 55 59 194 [4,] 52 201 197 64 , , 2 [,1] [,2] [,3] [,4] [1,] 97 156 152 109 [2,] 159 102 106 147 [3,] 158 103 107 146 [4,] 100 153 149 112 , , 3 [,1] [,2] [,3] [,4] [1,] 145 108 104 157 [2,] 111 150 154 99 [3,] 110 151 155 98 [4,] 148 105 101 160 , , 4 [,1] [,2] [,3] [,4] [1,] 193 60 56 205 [2,] 63 198 202 51 [3,] 62 199 203 50 [4,] 196 57 53 208 $"i,,n-i+1,i" [,1] [,2] [,3] [,4] [1,] 49 159 110 196 [2,] 204 102 151 57 [3,] 200 106 155 53 [4,] 61 147 98 208 $"n-i+1,,n-i+1,i" [,1] [,2] [,3] [,4] [1,] 52 158 111 193 [2,] 201 103 150 60 [3,] 197 107 154 56 [4,] 64 146 99 205 $",i,n-i+1,i" [,1] [,2] [,3] [,4] [1,] 49 156 104 205 [2,] 207 102 154 51 [3,] 206 103 155 50 [4,] 52 153 101 208 $"i,i,n-i+1,i" [1] 49 102 155 208 $"n-i+1,i,n-i+1,i" [1] 52 103 154 205 $",n-i+1,n-i+1,i" [,1] [,2] [,3] [,4] [1,] 61 152 108 193 [2,] 195 106 150 63 [3,] 194 107 151 62 [4,] 64 149 105 196 $"i,n-i+1,n-i+1,i" [1] 61 106 151 196 $"n-i+1,n-i+1,n-i+1,i" [1] 64 107 150 193 $"i,,,n-i+1" , , 1 [,1] [,2] [,3] [,4] [1,] 193 48 32 241 [2,] 60 213 229 12 [3,] 56 217 233 8 [4,] 205 36 20 253 , , 2 [,1] [,2] [,3] [,4] [1,] 130 111 95 178 [2,] 123 150 166 75 [3,] 119 154 170 71 [4,] 142 99 83 190 , , 3 [,1] [,2] [,3] [,4] [1,] 67 174 158 115 [2,] 186 87 103 138 [3,] 182 91 107 134 [4,] 79 162 146 127 , , 4 [,1] [,2] [,3] [,4] [1,] 4 237 221 52 [2,] 249 24 40 201 [3,] 245 28 44 197 [4,] 16 225 209 64 $"n-i+1,,,n-i+1" , , 1 [,1] [,2] [,3] [,4] [1,] 196 45 29 244 [2,] 57 216 232 9 [3,] 53 220 236 5 [4,] 208 33 17 256 , , 2 [,1] [,2] [,3] [,4] [1,] 131 110 94 179 [2,] 122 151 167 74 [3,] 118 155 171 70 [4,] 143 98 82 191 , , 3 [,1] [,2] [,3] [,4] [1,] 66 175 159 114 [2,] 187 86 102 139 [3,] 183 90 106 135 [4,] 78 163 147 126 , , 4 [,1] [,2] [,3] [,4] [1,] 1 240 224 49 [2,] 252 21 37 204 [3,] 248 25 41 200 [4,] 13 228 212 61 $",i,,n-i+1" , , 1 [,1] [,2] [,3] [,4] [1,] 193 48 32 241 [2,] 63 210 226 15 [3,] 62 211 227 14 [4,] 196 45 29 244 , , 2 [,1] [,2] [,3] [,4] [1,] 133 108 92 181 [2,] 123 150 166 75 [3,] 122 151 167 74 [4,] 136 105 89 184 , , 3 [,1] [,2] [,3] [,4] [1,] 73 168 152 121 [2,] 183 90 106 135 [3,] 182 91 107 134 [4,] 76 165 149 124 , , 4 [,1] [,2] [,3] [,4] [1,] 13 228 212 61 [2,] 243 30 46 195 [3,] 242 31 47 194 [4,] 16 225 209 64 $"i,i,,n-i+1" [,1] [,2] [,3] [,4] [1,] 193 123 182 16 [2,] 48 150 91 225 [3,] 32 166 107 209 [4,] 241 75 134 64 $"n-i+1,i,,n-i+1" [,1] [,2] [,3] [,4] [1,] 196 122 183 13 [2,] 45 151 90 228 [3,] 29 167 106 212 [4,] 244 74 135 61 $",n-i+1,,n-i+1" , , 1 [,1] [,2] [,3] [,4] [1,] 205 36 20 253 [2,] 51 222 238 3 [3,] 50 223 239 2 [4,] 208 33 17 256 , , 2 [,1] [,2] [,3] [,4] [1,] 137 104 88 185 [2,] 119 154 170 71 [3,] 118 155 171 70 [4,] 140 101 85 188 , , 3 [,1] [,2] [,3] [,4] [1,] 69 172 156 117 [2,] 187 86 102 139 [3,] 186 87 103 138 [4,] 72 169 153 120 , , 4 [,1] [,2] [,3] [,4] [1,] 1 240 224 49 [2,] 255 18 34 207 [3,] 254 19 35 206 [4,] 4 237 221 52 $"i,n-i+1,,n-i+1" [,1] [,2] [,3] [,4] [1,] 205 119 186 4 [2,] 36 154 87 237 [3,] 20 170 103 221 [4,] 253 71 138 52 $"n-i+1,n-i+1,,n-i+1" [,1] [,2] [,3] [,4] [1,] 208 118 187 1 [2,] 33 155 86 240 [3,] 17 171 102 224 [4,] 256 70 139 49 $",,i,n-i+1" , , 1 [,1] [,2] [,3] [,4] [1,] 193 60 56 205 [2,] 63 198 202 51 [3,] 62 199 203 50 [4,] 196 57 53 208 , , 2 [,1] [,2] [,3] [,4] [1,] 145 108 104 157 [2,] 111 150 154 99 [3,] 110 151 155 98 [4,] 148 105 101 160 , , 3 [,1] [,2] [,3] [,4] [1,] 97 156 152 109 [2,] 159 102 106 147 [3,] 158 103 107 146 [4,] 100 153 149 112 , , 4 [,1] [,2] [,3] [,4] [1,] 49 204 200 61 [2,] 207 54 58 195 [3,] 206 55 59 194 [4,] 52 201 197 64 $"i,,i,n-i+1" [,1] [,2] [,3] [,4] [1,] 193 111 158 52 [2,] 60 150 103 201 [3,] 56 154 107 197 [4,] 205 99 146 64 $"n-i+1,,i,n-i+1" [,1] [,2] [,3] [,4] [1,] 196 110 159 49 [2,] 57 151 102 204 [3,] 53 155 106 200 [4,] 208 98 147 61 $",i,i,n-i+1" [,1] [,2] [,3] [,4] [1,] 193 108 152 61 [2,] 63 150 106 195 [3,] 62 151 107 194 [4,] 196 105 149 64 $"i,i,i,n-i+1" [1] 193 150 107 64 $"n-i+1,i,i,n-i+1" [1] 196 151 106 61 $",n-i+1,i,n-i+1" [,1] [,2] [,3] [,4] [1,] 205 104 156 49 [2,] 51 154 102 207 [3,] 50 155 103 206 [4,] 208 101 153 52 $"i,n-i+1,i,n-i+1" [1] 205 154 103 52 $"n-i+1,n-i+1,i,n-i+1" [1] 208 155 102 49 $",,n-i+1,n-i+1" , , 1 [,1] [,2] [,3] [,4] [1,] 241 12 8 253 [2,] 15 246 250 3 [3,] 14 247 251 2 [4,] 244 9 5 256 , , 2 [,1] [,2] [,3] [,4] [1,] 161 92 88 173 [2,] 95 166 170 83 [3,] 94 167 171 82 [4,] 164 89 85 176 , , 3 [,1] [,2] [,3] [,4] [1,] 81 172 168 93 [2,] 175 86 90 163 [3,] 174 87 91 162 [4,] 84 169 165 96 , , 4 [,1] [,2] [,3] [,4] [1,] 1 252 248 13 [2,] 255 6 10 243 [3,] 254 7 11 242 [4,] 4 249 245 16 $"i,,n-i+1,n-i+1" [,1] [,2] [,3] [,4] [1,] 241 95 174 4 [2,] 12 166 87 249 [3,] 8 170 91 245 [4,] 253 83 162 16 $"n-i+1,,n-i+1,n-i+1" [,1] [,2] [,3] [,4] [1,] 244 94 175 1 [2,] 9 167 86 252 [3,] 5 171 90 248 [4,] 256 82 163 13 $",i,n-i+1,n-i+1" [,1] [,2] [,3] [,4] [1,] 241 92 168 13 [2,] 15 166 90 243 [3,] 14 167 91 242 [4,] 244 89 165 16 $"i,i,n-i+1,n-i+1" [1] 241 166 91 16 $"n-i+1,i,n-i+1,n-i+1" [1] 244 167 90 13 $",n-i+1,n-i+1,n-i+1" [,1] [,2] [,3] [,4] [1,] 253 88 172 1 [2,] 3 170 86 255 [3,] 2 171 87 254 [4,] 256 85 169 4 $"i,n-i+1,n-i+1,n-i+1" [1] 253 170 87 4 $"n-i+1,n-i+1,n-i+1,n-i+1" [1] 256 171 86 1 > > > > cleanEx(); ..nameEx <- "allsums" > > ### * allsums > > flush(stderr()); flush(stdout()) > > ### Name: allsums > ### Title: Row, column, and two diagonal sums of arrays > ### Aliases: allsums > ### Keywords: array > > ### ** Examples > > allsums(magic(7)) $rowsums [1] 175 175 175 175 175 175 175 $colsums [1] 175 175 175 175 175 175 175 $majors [1] 175 175 175 175 175 175 175 $minors [1] 175 126 77 28 322 273 224 > allsums(magic(7),FUN=max) $rowsums [1] 49 43 44 45 46 47 48 $colsums [1] 45 44 43 49 48 47 46 $majors [1] 47 43 46 49 45 48 44 $minors [1] 28 21 14 7 49 42 35 > allsums(magic(7),FUN=function(x){x[1:2]}) $rowsums [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] 20 12 4 45 37 29 28 [2,] 11 3 44 36 35 27 19 $colsums [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] 20 11 2 49 40 31 22 [2,] 12 3 43 41 32 23 21 $majors [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] 20 11 2 49 40 31 22 [2,] 3 43 41 32 23 21 12 $minors [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] 22 20 11 2 49 40 31 [2,] 23 21 12 3 43 41 32 > # shows how the minor diagonals are ordered: first [1,n] to [n,1] then > # [1,n+1] to [n,2] etc. > > allsums(magic.prime(7),sort) $rowsums [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] 1 7 6 5 4 3 2 [2,] 9 8 14 13 12 11 10 [3,] 17 16 15 21 20 19 18 [4,] 25 24 23 22 28 27 26 [5,] 33 32 31 30 29 35 34 [6,] 41 40 39 38 37 36 42 [7,] 49 48 47 46 45 44 43 $colsums [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] 1 4 7 3 6 2 5 [2,] 13 9 12 8 11 14 10 [3,] 18 21 17 20 16 19 15 [4,] 23 26 22 25 28 24 27 [5,] 35 31 34 30 33 29 32 [6,] 40 36 39 42 38 41 37 [7,] 45 48 44 47 43 46 49 $majors [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] 1 7 6 5 4 3 2 [2,] 10 9 8 14 13 12 11 [3,] 19 18 17 16 15 21 20 [4,] 28 27 26 25 24 23 22 [5,] 30 29 35 34 33 32 31 [6,] 39 38 37 36 42 41 40 [7,] 48 47 46 45 44 43 49 $minors [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] 6 1 3 5 7 2 4 [2,] 12 14 9 11 13 8 10 [3,] 18 20 15 17 19 21 16 [4,] 24 26 28 23 25 27 22 [5,] 30 32 34 29 31 33 35 [6,] 36 38 40 42 37 39 41 [7,] 49 44 46 48 43 45 47 > # beware! compare apply(magic(7),1,sort) with apply(magic(7),2,sort) > > > > > > cleanEx(); ..nameEx <- "as.standard" > > ### * as.standard > > flush(stderr()); flush(stdout()) > > ### Name: as.standard > ### Title: Standard form for magic squares > ### Aliases: as.standard is.standard > ### Keywords: array > > ### ** Examples > > is.standard(magic.2np1(4)) [1] FALSE > as.standard(magic.4n(3)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [1,] 1 132 120 37 49 84 72 85 97 36 24 133 [2,] 143 14 26 107 95 62 74 59 47 110 122 11 [3,] 142 15 27 106 94 63 75 58 46 111 123 10 [4,] 4 129 117 40 52 81 69 88 100 33 21 136 [5,] 5 128 116 41 53 80 68 89 101 32 20 137 [6,] 139 18 30 103 91 66 78 55 43 114 126 7 [7,] 138 19 31 102 90 67 79 54 42 115 127 6 [8,] 8 125 113 44 56 77 65 92 104 29 17 140 [9,] 9 124 112 45 57 76 64 93 105 28 16 141 [10,] 135 22 34 99 87 70 82 51 39 118 130 3 [11,] 134 23 35 98 86 71 83 50 38 119 131 2 [12,] 12 121 109 48 60 73 61 96 108 25 13 144 > > as.standard(magichypercube.4n(1,5)) , , 1, 1, 1 [,1] [,2] [,3] [,4] [1,] 1 1020 1016 13 [2,] 1023 6 10 1011 [3,] 1022 7 11 1010 [4,] 4 1017 1013 16 , , 2, 1, 1 [,1] [,2] [,3] [,4] [1,] 1008 21 25 996 [2,] 18 1003 999 30 [3,] 19 1002 998 31 [4,] 1005 24 28 993 , , 3, 1, 1 [,1] [,2] [,3] [,4] [1,] 992 37 41 980 [2,] 34 987 983 46 [3,] 35 986 982 47 [4,] 989 40 44 977 , , 4, 1, 1 [,1] [,2] [,3] [,4] [1,] 49 972 968 61 [2,] 975 54 58 963 [3,] 974 55 59 962 [4,] 52 969 965 64 , , 1, 2, 1 [,1] [,2] [,3] [,4] [1,] 960 69 73 948 [2,] 66 955 951 78 [3,] 67 954 950 79 [4,] 957 72 76 945 , , 2, 2, 1 [,1] [,2] [,3] [,4] [1,] 81 940 936 93 [2,] 943 86 90 931 [3,] 942 87 91 930 [4,] 84 937 933 96 , , 3, 2, 1 [,1] [,2] [,3] [,4] [1,] 97 924 920 109 [2,] 927 102 106 915 [3,] 926 103 107 914 [4,] 100 921 917 112 , , 4, 2, 1 [,1] [,2] [,3] [,4] [1,] 912 117 121 900 [2,] 114 907 903 126 [3,] 115 906 902 127 [4,] 909 120 124 897 , , 1, 3, 1 [,1] [,2] [,3] [,4] [1,] 896 133 137 884 [2,] 130 891 887 142 [3,] 131 890 886 143 [4,] 893 136 140 881 , , 2, 3, 1 [,1] [,2] [,3] [,4] [1,] 145 876 872 157 [2,] 879 150 154 867 [3,] 878 151 155 866 [4,] 148 873 869 160 , , 3, 3, 1 [,1] [,2] [,3] [,4] [1,] 161 860 856 173 [2,] 863 166 170 851 [3,] 862 167 171 850 [4,] 164 857 853 176 , , 4, 3, 1 [,1] [,2] [,3] [,4] [1,] 848 181 185 836 [2,] 178 843 839 190 [3,] 179 842 838 191 [4,] 845 184 188 833 , , 1, 4, 1 [,1] [,2] [,3] [,4] [1,] 193 828 824 205 [2,] 831 198 202 819 [3,] 830 199 203 818 [4,] 196 825 821 208 , , 2, 4, 1 [,1] [,2] [,3] [,4] [1,] 816 213 217 804 [2,] 210 811 807 222 [3,] 211 810 806 223 [4,] 813 216 220 801 , , 3, 4, 1 [,1] [,2] [,3] [,4] [1,] 800 229 233 788 [2,] 226 795 791 238 [3,] 227 794 790 239 [4,] 797 232 236 785 , , 4, 4, 1 [,1] [,2] [,3] [,4] [1,] 241 780 776 253 [2,] 783 246 250 771 [3,] 782 247 251 770 [4,] 244 777 773 256 , , 1, 1, 2 [,1] [,2] [,3] [,4] [1,] 768 261 265 756 [2,] 258 763 759 270 [3,] 259 762 758 271 [4,] 765 264 268 753 , , 2, 1, 2 [,1] [,2] [,3] [,4] [1,] 273 748 744 285 [2,] 751 278 282 739 [3,] 750 279 283 738 [4,] 276 745 741 288 , , 3, 1, 2 [,1] [,2] [,3] [,4] [1,] 289 732 728 301 [2,] 735 294 298 723 [3,] 734 295 299 722 [4,] 292 729 725 304 , , 4, 1, 2 [,1] [,2] [,3] [,4] [1,] 720 309 313 708 [2,] 306 715 711 318 [3,] 307 714 710 319 [4,] 717 312 316 705 , , 1, 2, 2 [,1] [,2] [,3] [,4] [1,] 321 700 696 333 [2,] 703 326 330 691 [3,] 702 327 331 690 [4,] 324 697 693 336 , , 2, 2, 2 [,1] [,2] [,3] [,4] [1,] 688 341 345 676 [2,] 338 683 679 350 [3,] 339 682 678 351 [4,] 685 344 348 673 , , 3, 2, 2 [,1] [,2] [,3] [,4] [1,] 672 357 361 660 [2,] 354 667 663 366 [3,] 355 666 662 367 [4,] 669 360 364 657 , , 4, 2, 2 [,1] [,2] [,3] [,4] [1,] 369 652 648 381 [2,] 655 374 378 643 [3,] 654 375 379 642 [4,] 372 649 645 384 , , 1, 3, 2 [,1] [,2] [,3] [,4] [1,] 385 636 632 397 [2,] 639 390 394 627 [3,] 638 391 395 626 [4,] 388 633 629 400 , , 2, 3, 2 [,1] [,2] [,3] [,4] [1,] 624 405 409 612 [2,] 402 619 615 414 [3,] 403 618 614 415 [4,] 621 408 412 609 , , 3, 3, 2 [,1] [,2] [,3] [,4] [1,] 608 421 425 596 [2,] 418 603 599 430 [3,] 419 602 598 431 [4,] 605 424 428 593 , , 4, 3, 2 [,1] [,2] [,3] [,4] [1,] 433 588 584 445 [2,] 591 438 442 579 [3,] 590 439 443 578 [4,] 436 585 581 448 , , 1, 4, 2 [,1] [,2] [,3] [,4] [1,] 576 453 457 564 [2,] 450 571 567 462 [3,] 451 570 566 463 [4,] 573 456 460 561 , , 2, 4, 2 [,1] [,2] [,3] [,4] [1,] 465 556 552 477 [2,] 559 470 474 547 [3,] 558 471 475 546 [4,] 468 553 549 480 , , 3, 4, 2 [,1] [,2] [,3] [,4] [1,] 481 540 536 493 [2,] 543 486 490 531 [3,] 542 487 491 530 [4,] 484 537 533 496 , , 4, 4, 2 [,1] [,2] [,3] [,4] [1,] 528 501 505 516 [2,] 498 523 519 510 [3,] 499 522 518 511 [4,] 525 504 508 513 , , 1, 1, 3 [,1] [,2] [,3] [,4] [1,] 512 517 521 500 [2,] 514 507 503 526 [3,] 515 506 502 527 [4,] 509 520 524 497 , , 2, 1, 3 [,1] [,2] [,3] [,4] [1,] 529 492 488 541 [2,] 495 534 538 483 [3,] 494 535 539 482 [4,] 532 489 485 544 , , 3, 1, 3 [,1] [,2] [,3] [,4] [1,] 545 476 472 557 [2,] 479 550 554 467 [3,] 478 551 555 466 [4,] 548 473 469 560 , , 4, 1, 3 [,1] [,2] [,3] [,4] [1,] 464 565 569 452 [2,] 562 459 455 574 [3,] 563 458 454 575 [4,] 461 568 572 449 , , 1, 2, 3 [,1] [,2] [,3] [,4] [1,] 577 444 440 589 [2,] 447 582 586 435 [3,] 446 583 587 434 [4,] 580 441 437 592 , , 2, 2, 3 [,1] [,2] [,3] [,4] [1,] 432 597 601 420 [2,] 594 427 423 606 [3,] 595 426 422 607 [4,] 429 600 604 417 , , 3, 2, 3 [,1] [,2] [,3] [,4] [1,] 416 613 617 404 [2,] 610 411 407 622 [3,] 611 410 406 623 [4,] 413 616 620 401 , , 4, 2, 3 [,1] [,2] [,3] [,4] [1,] 625 396 392 637 [2,] 399 630 634 387 [3,] 398 631 635 386 [4,] 628 393 389 640 , , 1, 3, 3 [,1] [,2] [,3] [,4] [1,] 641 380 376 653 [2,] 383 646 650 371 [3,] 382 647 651 370 [4,] 644 377 373 656 , , 2, 3, 3 [,1] [,2] [,3] [,4] [1,] 368 661 665 356 [2,] 658 363 359 670 [3,] 659 362 358 671 [4,] 365 664 668 353 , , 3, 3, 3 [,1] [,2] [,3] [,4] [1,] 352 677 681 340 [2,] 674 347 343 686 [3,] 675 346 342 687 [4,] 349 680 684 337 , , 4, 3, 3 [,1] [,2] [,3] [,4] [1,] 689 332 328 701 [2,] 335 694 698 323 [3,] 334 695 699 322 [4,] 692 329 325 704 , , 1, 4, 3 [,1] [,2] [,3] [,4] [1,] 320 709 713 308 [2,] 706 315 311 718 [3,] 707 314 310 719 [4,] 317 712 716 305 , , 2, 4, 3 [,1] [,2] [,3] [,4] [1,] 721 300 296 733 [2,] 303 726 730 291 [3,] 302 727 731 290 [4,] 724 297 293 736 , , 3, 4, 3 [,1] [,2] [,3] [,4] [1,] 737 284 280 749 [2,] 287 742 746 275 [3,] 286 743 747 274 [4,] 740 281 277 752 , , 4, 4, 3 [,1] [,2] [,3] [,4] [1,] 272 757 761 260 [2,] 754 267 263 766 [3,] 755 266 262 767 [4,] 269 760 764 257 , , 1, 1, 4 [,1] [,2] [,3] [,4] [1,] 769 252 248 781 [2,] 255 774 778 243 [3,] 254 775 779 242 [4,] 772 249 245 784 , , 2, 1, 4 [,1] [,2] [,3] [,4] [1,] 240 789 793 228 [2,] 786 235 231 798 [3,] 787 234 230 799 [4,] 237 792 796 225 , , 3, 1, 4 [,1] [,2] [,3] [,4] [1,] 224 805 809 212 [2,] 802 219 215 814 [3,] 803 218 214 815 [4,] 221 808 812 209 , , 4, 1, 4 [,1] [,2] [,3] [,4] [1,] 817 204 200 829 [2,] 207 822 826 195 [3,] 206 823 827 194 [4,] 820 201 197 832 , , 1, 2, 4 [,1] [,2] [,3] [,4] [1,] 192 837 841 180 [2,] 834 187 183 846 [3,] 835 186 182 847 [4,] 189 840 844 177 , , 2, 2, 4 [,1] [,2] [,3] [,4] [1,] 849 172 168 861 [2,] 175 854 858 163 [3,] 174 855 859 162 [4,] 852 169 165 864 , , 3, 2, 4 [,1] [,2] [,3] [,4] [1,] 865 156 152 877 [2,] 159 870 874 147 [3,] 158 871 875 146 [4,] 868 153 149 880 , , 4, 2, 4 [,1] [,2] [,3] [,4] [1,] 144 885 889 132 [2,] 882 139 135 894 [3,] 883 138 134 895 [4,] 141 888 892 129 , , 1, 3, 4 [,1] [,2] [,3] [,4] [1,] 128 901 905 116 [2,] 898 123 119 910 [3,] 899 122 118 911 [4,] 125 904 908 113 , , 2, 3, 4 [,1] [,2] [,3] [,4] [1,] 913 108 104 925 [2,] 111 918 922 99 [3,] 110 919 923 98 [4,] 916 105 101 928 , , 3, 3, 4 [,1] [,2] [,3] [,4] [1,] 929 92 88 941 [2,] 95 934 938 83 [3,] 94 935 939 82 [4,] 932 89 85 944 , , 4, 3, 4 [,1] [,2] [,3] [,4] [1,] 80 949 953 68 [2,] 946 75 71 958 [3,] 947 74 70 959 [4,] 77 952 956 65 , , 1, 4, 4 [,1] [,2] [,3] [,4] [1,] 961 60 56 973 [2,] 63 966 970 51 [3,] 62 967 971 50 [4,] 964 57 53 976 , , 2, 4, 4 [,1] [,2] [,3] [,4] [1,] 48 981 985 36 [2,] 978 43 39 990 [3,] 979 42 38 991 [4,] 45 984 988 33 , , 3, 4, 4 [,1] [,2] [,3] [,4] [1,] 32 997 1001 20 [2,] 994 27 23 1006 [3,] 995 26 22 1007 [4,] 29 1000 1004 17 , , 4, 4, 4 [,1] [,2] [,3] [,4] [1,] 1009 12 8 1021 [2,] 15 1014 1018 3 [3,] 14 1015 1019 2 [4,] 1012 9 5 1024 > > ##non-square arrays: > as.standard(magic(7)[1:3,]) [,1] [,2] [,3] [1,] 4 12 20 [2,] 44 3 11 [3,] 42 43 2 [4,] 33 41 49 [5,] 24 32 40 [6,] 15 23 31 [7,] 13 21 22 > > > > > cleanEx(); ..nameEx <- "circulant" > > ### * circulant > > flush(stderr()); flush(stdout()) > > ### Name: circulant > ### Title: Circulant matrices of any order > ### Aliases: circulant is.circulant > ### Keywords: array > > ### ** Examples > > circulant(5) [,1] [,2] [,3] [,4] [,5] [1,] 1 2 3 4 5 [2,] 5 1 2 3 4 [3,] 4 5 1 2 3 [4,] 3 4 5 1 2 [5,] 2 3 4 5 1 > circulant(5,vec=2^(0:4)) [,1] [,2] [,3] [,4] [,5] [1,] 1 2 4 8 16 [2,] 16 1 2 4 8 [3,] 8 16 1 2 4 [4,] 4 8 16 1 2 [5,] 2 4 8 16 1 > is.circulant(circulant(5)) [1] TRUE > > a <- outer(1:3,1:3,"+")%%3 > is.circulant(a) [1] FALSE > is.circulant(a,c(1,2)) [1] TRUE > > is.circulant(array(c(1:4,4:1),rep(2,3))) [1] TRUE > > is.circulant(magic(5)%%5,c(2,-1)) [1] TRUE > > > > > cleanEx(); ..nameEx <- "cube2" > > ### * cube2 > > flush(stderr()); flush(stdout()) > > ### Name: cube2 > ### Title: A pantriagonal magic cube > ### Aliases: cube2 > ### Keywords: datasets > > ### ** Examples > > data(cube2) > is.magichypercube(cube2) [1] TRUE > is.perfect(cube2) [1] FALSE > > > > cleanEx(); ..nameEx <- "diag.off" > > ### * diag.off > > flush(stderr()); flush(stdout()) > > ### Name: diag.off > ### Title: Extracts broken diagonals > ### Aliases: diag.off > ### Keywords: array > > ### ** Examples > > diag.off(magic(10),nw.se=FALSE,offset=0) [1] 43 44 46 48 50 52 54 53 58 57 > diag.off(magic(10),nw.se=FALSE,offset=1) [1] 34 41 39 45 23 49 27 56 31 60 > > > > cleanEx(); ..nameEx <- "dimension" > > ### * dimension > > flush(stderr()); flush(stdout()) > > ### Name: dimension > ### Title: Generalized row and col > ### Aliases: dimension > ### Keywords: array > > ### ** Examples > > a <- array(0,c(3,3,2,2)) > dimension(a,2) , , 1, 1 [,1] [,2] [,3] [1,] 1 2 3 [2,] 1 2 3 [3,] 1 2 3 , , 2, 1 [,1] [,2] [,3] [1,] 1 2 3 [2,] 1 2 3 [3,] 1 2 3 , , 1, 2 [,1] [,2] [,3] [1,] 1 2 3 [2,] 1 2 3 [3,] 1 2 3 , , 2, 2 [,1] [,2] [,3] [1,] 1 2 3 [2,] 1 2 3 [3,] 1 2 3 > (dimension(a,1)+dimension(a,2)+dimension(a,3)+dimension(a,4))%%2 , , 1, 1 [,1] [,2] [,3] [1,] 0 1 0 [2,] 1 0 1 [3,] 0 1 0 , , 2, 1 [,1] [,2] [,3] [1,] 1 0 1 [2,] 0 1 0 [3,] 1 0 1 , , 1, 2 [,1] [,2] [,3] [1,] 1 0 1 [2,] 0 1 0 [3,] 1 0 1 , , 2, 2 [,1] [,2] [,3] [1,] 0 1 0 [2,] 1 0 1 [3,] 0 1 0 > > > > > cleanEx(); ..nameEx <- "eq" > > ### * eq > > flush(stderr()); flush(stdout()) > > ### Name: eq > ### Title: Comparison of two magic squares > ### Aliases: eq ne gt lt ge le \%eq\% \%ne\% \%gt\% \%lt\% \%ge\% \%le\% > ### Keywords: array > > ### ** Examples > > magic(4) %eq% magic.4n(1) [1] TRUE > eq(magic(4) , magic.4n(1)) [1] TRUE > > > > cleanEx(); ..nameEx <- "force.integer" > > ### * force.integer > > flush(stderr()); flush(stdout()) > > ### Name: force.integer > ### Title: Integerize array elements > ### Aliases: force.integer > ### Keywords: array > > ### ** Examples > > a <- matrix(rep(1,4),2,2) > force.integer(a) [,1] [,2] [1,] 1 1 [2,] 1 1 > as.integer(a) [1] 1 1 1 1 > > > > cleanEx(); ..nameEx <- "hendricks" > > ### * hendricks > > flush(stderr()); flush(stdout()) > > ### Name: hendricks > ### Title: A perfect magic cube due to Hendricks > ### Aliases: hendricks > ### Keywords: datasets array > > ### ** Examples > > data(hendricks) > is.perfect(hendricks) [1] TRUE > > > > cleanEx(); ..nameEx <- "hudson" > > ### * hudson > > flush(stderr()); flush(stdout()) > > ### Name: hudson > ### Title: Pandiagonal magic squares due to Hudson > ### Aliases: hudson > ### Keywords: array > > ### ** Examples > > hudson(n=11) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [1,] 112 3 15 27 39 51 63 75 87 99 100 [2,] 92 104 116 7 19 31 43 55 56 68 80 [3,] 72 84 96 108 120 11 12 24 36 48 60 [4,] 52 64 76 88 89 101 113 4 16 28 40 [5,] 32 44 45 57 69 81 93 105 117 8 20 [6,] 1 13 25 37 49 61 73 85 97 109 121 [7,] 102 114 5 17 29 41 53 65 77 78 90 [8,] 82 94 106 118 9 21 33 34 46 58 70 [9,] 62 74 86 98 110 111 2 14 26 38 50 [10,] 42 54 66 67 79 91 103 115 6 18 30 [11,] 22 23 35 47 59 71 83 95 107 119 10 > magicplot(hudson(n=11)) > is.associative(hudson(n=13)) [1] TRUE > hudson(a=(2*1:13)%%13 , b=(8*1:13)%%13) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [1,] 34 55 89 110 131 165 17 51 72 93 127 148 0 [2,] 154 6 27 61 82 116 137 158 23 44 65 99 120 [3,] 92 126 147 12 33 54 88 109 130 164 16 50 71 [4,] 43 77 98 119 153 5 26 60 81 115 136 157 22 [5,] 163 15 49 70 91 125 146 11 32 53 87 108 142 [6,] 114 135 156 21 42 76 97 118 152 4 38 59 80 [7,] 52 86 107 141 162 14 48 69 103 124 145 10 31 [8,] 3 37 58 79 113 134 168 20 41 75 96 117 151 [9,] 123 144 9 30 64 85 106 140 161 13 47 68 102 [10,] 74 95 129 150 2 36 57 78 112 133 167 19 40 [11,] 25 46 67 101 122 143 8 29 63 84 105 139 160 [12,] 132 166 18 39 73 94 128 149 1 35 56 90 111 [13,] 83 104 138 159 24 45 66 100 121 155 7 28 62 > all(replicate(10,is.magic(hudson(a=sample(13),b=sample(13))))) [1] TRUE > > > > cleanEx(); ..nameEx <- "is.magic" > > ### * is.magic > > flush(stderr()); flush(stdout()) > > ### Name: is.magic > ### Title: Various tests for the magicness of a square > ### Aliases: is.magic is.panmagic is.semimagic is.associative is.normal > ### is.mostperfect is.2x2.correct is.bree.correct is.latin > ### Keywords: array > > ### ** Examples > > is.magic(magic(4)) [1] TRUE > > is.magic(diag(9),FUN=max) #should be TRUE [1] TRUE > > stopifnot(is.magic(magic(3:8))) > > is.panmagic(panmagic.4()) [1] TRUE > is.panmagic(panmagic.8()) [1] TRUE > > data(Ollerenshaw) > is.mostperfect(Ollerenshaw) [1] TRUE > > proper.magic <- function(m){is.magic(m) & is.normal(m)} > proper.magic(magic(20)) [1] TRUE > > > > cleanEx(); ..nameEx <- "is.magichypercube" > > ### * is.magichypercube > > flush(stderr()); flush(stdout()) > > ### Name: is.magichypercube > ### Title: magic hypercubes > ### Aliases: is.semimagichypercube is.magichypercube is.perfect > ### is.diagonally.correct is.latinhypercube > ### Keywords: array > > ### ** Examples > > library(abind) > is.semimagichypercube(magiccube.2np1(1)) [1] TRUE > is.semimagichypercube(magichypercube.4n(1,d=4)) [1] TRUE > > is.perfect(magichypercube.4n(1,d=4)) [1] FALSE > > # Now try an array with minmax(dim(a))==FALSE: > a <- abind(magiccube.2np1(1),magiccube.2np1(1),along=2) > is.semimagichypercube(a,g=TRUE)$rook.sums [[1]] [,1] [,2] [,3] [1,] 42 42 42 [2,] 42 42 42 [3,] 42 42 42 [4,] 42 42 42 [5,] 42 42 42 [6,] 42 42 42 [[2]] [,1] [,2] [,3] [1,] 84 84 84 [2,] 84 84 84 [3,] 84 84 84 [[3]] [,1] [,2] [,3] [,4] [,5] [,6] [1,] 42 42 42 42 42 42 [2,] 42 42 42 42 42 42 [3,] 42 42 42 42 42 42 > > #argument boolean can be confusing: > zero <- array(0,rep(3,4)) > is.semimagichypercube(a,FUN=is.ok,boolean=FALSE) # TRUE, because all [1] NA > # applications of is.ok() > # return the same value! > > a2 <- magichypercube.4n(m=1,d=4) > is.diagonally.correct(a2) [1] TRUE > is.diagonally.correct(a2,g=TRUE)$diag.sums , , 1, 1 [,1] [,2] [1,] 514 514 [2,] 514 514 , , 2, 1 [,1] [,2] [1,] 514 514 [2,] 514 514 , , 1, 2 [,1] [,2] [1,] 514 514 [2,] 514 514 , , 2, 2 [,1] [,2] [1,] 514 514 [2,] 514 514 > > ## To extract corner elements (note FUN(1:n) != FUN(n:1)): > is.diagonally.correct(a2,FUN=function(x){x[1]},g=TRUE)$diag.sums , , 1, 1 [,1] [,2] [1,] 1 13 [2,] 4 16 , , 2, 1 [,1] [,2] [1,] 49 61 [2,] 52 64 , , 1, 2 [,1] [,2] [1,] 193 205 [2,] 196 208 , , 2, 2 [,1] [,2] [1,] 241 253 [2,] 244 256 > > #Now for a subhypercube of a magic hypercube that is not semimagic: > is.magic(allsubhypercubes(magiccube.2np1(1))[[10]]) [1] FALSE > > data(hendricks) > is.perfect(hendricks) [1] TRUE > > #note that Hendricks's magic cube also has many broken diagonals summing > #correctly: > > a <- allsubhypercubes(hendricks) > ld <- function(a){length(dim(a))} > > jj <- unlist(lapply(a,ld)) > f <- function(i){is.perfect(a[[which(jj==2)[i]]])} > all(sapply(1:sum(jj==2),f)) [1] TRUE > > #but this is NOT enough to ensure that it is pandiagonal (but I > #think hendricks is pandiagonal). > > > > > cleanEx(); ..nameEx <- "is.square.palindromic" > > ### * is.square.palindromic > > flush(stderr()); flush(stdout()) > > ### Name: is.square.palindromic > ### Title: Is a square matrix square palindromic? > ### Aliases: is.square.palindromic is.centrosymmetric is.persymmetric > ### is.square.palindromic > ### Keywords: array > > ### ** Examples > > is.square.palindromic(magic(3)) [1] TRUE > is.persymmetric(matrix(c(1,0,0,1),2,2)) [1] TRUE > > #now try a circulant: > a <- matrix(0,5,5) > is.square.palindromic(circulant(10)) #should be TRUE [1] TRUE > > > > cleanEx(); ..nameEx <- "lozenge" > > ### * lozenge > > flush(stderr()); flush(stdout()) > > ### Name: lozenge > ### Title: Conway's lozenge algorithm for magic squares > ### Aliases: lozenge > ### Keywords: array > > ### ** Examples > > lozenge(4) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [1,] 50 60 70 80 9 10 20 30 40 [2,] 58 68 78 7 17 27 28 38 48 [3,] 66 76 5 15 25 35 45 46 56 [4,] 74 3 13 23 33 43 53 63 64 [5,] 1 11 21 31 41 51 61 71 81 [6,] 18 19 29 39 49 59 69 79 8 [7,] 26 36 37 47 57 67 77 6 16 [8,] 34 44 54 55 65 75 4 14 24 [9,] 42 52 62 72 73 2 12 22 32 > all(sapply(1:10,function(n){is.magic(lozenge(n))})) [1] TRUE > > > > cleanEx(); ..nameEx <- "magic.2np1" > > ### * magic.2np1 > > flush(stderr()); flush(stdout()) > > ### Name: magic.2np1 > ### Title: Magic squares of odd order > ### Aliases: magic.2np1 > ### Keywords: array > > ### ** Examples > > magic.2np1(1) [,1] [,2] [,3] [1,] 8 1 6 [2,] 3 5 7 [3,] 4 9 2 > f <- function(n){is.magic(magic.2np1(n))} > all(sapply(1:20,f)) [1] TRUE > > is.panmagic(magic.2np1(5,ord.vec=c(2,1),break.vec=c(1,3))) [1] TRUE > > > > cleanEx(); ..nameEx <- "magic.4n" > > ### * magic.4n > > flush(stderr()); flush(stdout()) > > ### Name: magic.4n > ### Title: Magic squares of order 4n > ### Aliases: magic.4n > ### Keywords: array > > ### ** Examples > > magic.4n(4) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [1,] 256 17 33 208 192 81 97 144 128 145 161 80 64 [2,] 2 239 223 50 66 175 159 114 130 111 95 178 194 [3,] 3 238 222 51 67 174 158 115 131 110 94 179 195 [4,] 253 20 36 205 189 84 100 141 125 148 164 77 61 [5,] 252 21 37 204 188 85 101 140 124 149 165 76 60 [6,] 6 235 219 54 70 171 155 118 134 107 91 182 198 [7,] 7 234 218 55 71 170 154 119 135 106 90 183 199 [8,] 249 24 40 201 185 88 104 137 121 152 168 73 57 [9,] 248 25 41 200 184 89 105 136 120 153 169 72 56 [10,] 10 231 215 58 74 167 151 122 138 103 87 186 202 [11,] 11 230 214 59 75 166 150 123 139 102 86 187 203 [12,] 245 28 44 197 181 92 108 133 117 156 172 69 53 [13,] 244 29 45 196 180 93 109 132 116 157 173 68 52 [14,] 14 227 211 62 78 163 147 126 142 99 83 190 206 [15,] 15 226 210 63 79 162 146 127 143 98 82 191 207 [16,] 241 32 48 193 177 96 112 129 113 160 176 65 49 [,14] [,15] [,16] [1,] 209 225 16 [2,] 47 31 242 [3,] 46 30 243 [4,] 212 228 13 [5,] 213 229 12 [6,] 43 27 246 [7,] 42 26 247 [8,] 216 232 9 [9,] 217 233 8 [10,] 39 23 250 [11,] 38 22 251 [12,] 220 236 5 [13,] 221 237 4 [14,] 35 19 254 [15,] 34 18 255 [16,] 224 240 1 > is.magic(magic.4n(5)) [1] TRUE > > > > cleanEx(); ..nameEx <- "magic.4np2" > > ### * magic.4np2 > > flush(stderr()); flush(stdout()) > > ### Name: magic.4np2 > ### Title: Magic squares of order 4n+2 > ### Aliases: magic.4np2 > ### Keywords: array > > ### ** Examples > > magic.4np2(1) [,1] [,2] [,3] [,4] [,5] [,6] [1,] 32 29 4 1 24 21 [2,] 30 31 2 3 22 23 [3,] 12 9 17 20 28 25 [4,] 10 11 18 19 26 27 [5,] 13 16 36 33 5 8 [6,] 14 15 34 35 6 7 > is.magic(magic.4np2(3)) [1] TRUE > > > > cleanEx(); ..nameEx <- "magic.8" > > ### * magic.8 > > flush(stderr()); flush(stdout()) > > ### Name: magic.8 > ### Title: Regular magic squares of order 8 > ### Aliases: magic.8 > ### Keywords: array > > ### ** Examples > > ## Not run: > ##D h <- magic.8() > ##D h[,,1] > ##D is.magic(h[,,4]) > ## End(Not run) > > > > > cleanEx(); ..nameEx <- "magic" > > ### * magic > > flush(stderr()); flush(stdout()) > > ### Name: magic > ### Title: Creates magic squares > ### Aliases: magic > ### Keywords: array > > ### ** Examples > > magic(6) [,1] [,2] [,3] [,4] [,5] [,6] [1,] 7 6 35 34 15 14 [2,] 8 5 33 36 16 13 [3,] 27 26 19 18 11 10 [4,] 25 28 20 17 9 12 [5,] 23 22 3 2 31 30 [6,] 21 24 1 4 29 32 > all(is.magic(magic(3:10))) [1] TRUE > > ## The first eigenvalue of a magic square is equal to the magic constant: > eigen(magic(10),FALSE,TRUE)$values[1] - magic.constant(10) [1] -3.410605e-13 > > ## The sum of the eigenvalues of a magic square after the first is zero: > sum(eigen(magic(10),FALSE,TRUE)$values[2:10]) [1] 4.268161e-13 > > > > > > cleanEx(); ..nameEx <- "magic.constant" > > ### * magic.constant > > flush(stderr()); flush(stdout()) > > ### Name: magic.constant > ### Title: Magic constant of a magic square > ### Aliases: magic.constant > ### Keywords: array > > ### ** Examples > > magic.constant(4) [1] 34 > > > > cleanEx(); ..nameEx <- "magic.prime" > > ### * magic.prime > > flush(stderr()); flush(stdout()) > > ### Name: magic.prime > ### Title: Magic squares prime order > ### Aliases: magic.prime > ### Keywords: array > > ### ** Examples > > magic.prime(7) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] 1 9 17 25 33 41 49 [2,] 40 48 7 8 16 24 32 [3,] 23 31 39 47 6 14 15 [4,] 13 21 22 30 38 46 5 [5,] 45 4 12 20 28 29 37 [6,] 35 36 44 3 11 19 27 [7,] 18 26 34 42 43 2 10 > f <- function(n){is.magic(magic.prime(n))} > all(sapply(6*1:30+1,f)) [1] TRUE > all(sapply(6*1:30-1,f)) [1] TRUE > > is.magic(magic.prime(9,i=2,j=4),give.answers=TRUE) $answer [1] FALSE $rowsums [1] 369 369 369 369 369 369 369 369 369 $colsums [1] 369 369 369 369 369 369 369 369 369 $majors [1] 360 369 378 360 369 378 360 369 378 $minors [1] 450 288 369 450 288 369 450 288 369 > magic.prime(7,i=2,j=4) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] 1 9 17 25 33 41 49 [2,] 39 47 6 14 15 23 31 [3,] 28 29 37 45 4 12 20 [4,] 10 18 26 34 42 43 2 [5,] 48 7 8 16 24 32 40 [6,] 30 38 46 5 13 21 22 [7,] 19 27 35 36 44 3 11 > > > > cleanEx(); ..nameEx <- "magic.product" > > ### * magic.product > > flush(stderr()); flush(stdout()) > > ### Name: magic.product > ### Title: Product of two magic squares > ### Aliases: magic.product magic.product magic.product.fast > ### Keywords: array > > ### ** Examples > > magic.product(magic(3),magic(4)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [1,] 17 28 24 29 97 108 104 109 81 92 88 93 [2,] 31 22 26 19 111 102 106 99 95 86 90 83 [3,] 30 23 27 18 110 103 107 98 94 87 91 82 [4,] 20 25 21 32 100 105 101 112 84 89 85 96 [5,] 129 140 136 141 65 76 72 77 1 12 8 13 [6,] 143 134 138 131 79 70 74 67 15 6 10 3 [7,] 142 135 139 130 78 71 75 66 14 7 11 2 [8,] 132 137 133 144 68 73 69 80 4 9 5 16 [9,] 49 60 56 61 33 44 40 45 113 124 120 125 [10,] 63 54 58 51 47 38 42 35 127 118 122 115 [11,] 62 55 59 50 46 39 43 34 126 119 123 114 [12,] 52 57 53 64 36 41 37 48 116 121 117 128 > magic.product(3,4) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [1,] 17 28 24 29 97 108 104 109 81 92 88 93 [2,] 31 22 26 19 111 102 106 99 95 86 90 83 [3,] 30 23 27 18 110 103 107 98 94 87 91 82 [4,] 20 25 21 32 100 105 101 112 84 89 85 96 [5,] 129 140 136 141 65 76 72 77 1 12 8 13 [6,] 143 134 138 131 79 70 74 67 15 6 10 3 [7,] 142 135 139 130 78 71 75 66 14 7 11 2 [8,] 132 137 133 144 68 73 69 80 4 9 5 16 [9,] 49 60 56 61 33 44 40 45 113 124 120 125 [10,] 63 54 58 51 47 38 42 35 127 118 122 115 [11,] 62 55 59 50 46 39 43 34 126 119 123 114 [12,] 52 57 53 64 36 41 37 48 116 121 117 128 > > mat <- matrix(0,3,3) > a <- magic.product(3,4,mat=mat) > mat[1,1] <- 1 > b <- magic.product(3,4,mat=mat) > > a==b [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [1,] TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [2,] FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [3,] FALSE FALSE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [4,] FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [5,] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [6,] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [7,] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [8,] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [9,] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [10,] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [11,] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [12,] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE > > > > cleanEx(); ..nameEx <- "magiccube.2np1" > > ### * magiccube.2np1 > > flush(stderr()); flush(stdout()) > > ### Name: magiccube.2np1 > ### Title: Magic cubes of order 2n+1 > ### Aliases: magiccube.2np1 > ### Keywords: array > > ### ** Examples > > > #try with m=3, n=2*3+1=7: > > m <-7 > n <- 2*m+1 > > apply(magiccube.2np1(m),c(1,2),sum) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [1,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [2,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [3,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [4,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [5,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [6,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [7,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [8,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [9,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [10,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [11,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [12,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [13,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [14,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [15,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [,13] [,14] [,15] [1,] 25320 25320 25320 [2,] 25320 25320 25320 [3,] 25320 25320 25320 [4,] 25320 25320 25320 [5,] 25320 25320 25320 [6,] 25320 25320 25320 [7,] 25320 25320 25320 [8,] 25320 25320 25320 [9,] 25320 25320 25320 [10,] 25320 25320 25320 [11,] 25320 25320 25320 [12,] 25320 25320 25320 [13,] 25320 25320 25320 [14,] 25320 25320 25320 [15,] 25320 25320 25320 > apply(magiccube.2np1(m),c(1,3),sum) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [1,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [2,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [3,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [4,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [5,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [6,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [7,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [8,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [9,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [10,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [11,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [12,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [13,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [14,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [15,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [,13] [,14] [,15] [1,] 25320 25320 25320 [2,] 25320 25320 25320 [3,] 25320 25320 25320 [4,] 25320 25320 25320 [5,] 25320 25320 25320 [6,] 25320 25320 25320 [7,] 25320 25320 25320 [8,] 25320 25320 25320 [9,] 25320 25320 25320 [10,] 25320 25320 25320 [11,] 25320 25320 25320 [12,] 25320 25320 25320 [13,] 25320 25320 25320 [14,] 25320 25320 25320 [15,] 25320 25320 25320 > apply(magiccube.2np1(m),c(2,3),sum) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [1,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [2,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [3,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [4,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [5,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [6,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [7,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [8,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [9,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [10,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [11,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [12,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [13,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [14,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [15,] 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 25320 [,13] [,14] [,15] [1,] 25320 25320 25320 [2,] 25320 25320 25320 [3,] 25320 25320 25320 [4,] 25320 25320 25320 [5,] 25320 25320 25320 [6,] 25320 25320 25320 [7,] 25320 25320 25320 [8,] 25320 25320 25320 [9,] 25320 25320 25320 [10,] 25320 25320 25320 [11,] 25320 25320 25320 [12,] 25320 25320 25320 [13,] 25320 25320 25320 [14,] 25320 25320 25320 [15,] 25320 25320 25320 > > #major diagonal checks out: > sum(magiccube.2np1(m)[matrix(1:n,n,3)]) [1] 25320 > > #now other diagonals: > b <- c(-1,1) > f <- function(dir,v){if(dir>0){return(v)}else{return(rev(v))}} > g <- function(jj){sum(magiccube.2np1(m)[sapply(jj,f,v=1:n)])} > apply(expand.grid(b,b,b),1,g) #each diagonal twice, once per direction. 1 2 3 4 5 6 7 8 25320 25320 25320 25320 25320 25320 25320 25320 > > > > cleanEx(); ..nameEx <- "magiccubes" > > ### * magiccubes > > flush(stderr()); flush(stdout()) > > ### Name: magiccubes > ### Title: Magic cubes of order 3 > ### Aliases: magiccubes > ### Keywords: datasets > > ### ** Examples > > data(magiccubes) > magiccubes$a1 , , 1 [,1] [,2] [,3] [1,] 2 22 18 [2,] 13 9 20 [3,] 27 11 4 , , 2 [,1] [,2] [,3] [1,] 16 3 23 [2,] 21 14 7 [3,] 5 25 12 , , 3 [,1] [,2] [,3] [1,] 24 17 1 [2,] 8 19 15 [3,] 10 6 26 > sapply(magiccubes,is.magichypercube) a1 a2 a3 a4 TRUE TRUE TRUE TRUE > > > > cleanEx(); ..nameEx <- "magichypercube.4n" > > ### * magichypercube.4n > > flush(stderr()); flush(stdout()) > > ### Name: magichypercube.4n > ### Title: Magic hypercubes of order 4n > ### Aliases: magichypercube.4n > ### Keywords: array > > ### ** Examples > > magichypercube.4n(1,d=4) , , 1, 1 [,1] [,2] [,3] [,4] [1,] 1 252 248 13 [2,] 255 6 10 243 [3,] 254 7 11 242 [4,] 4 249 245 16 , , 2, 1 [,1] [,2] [,3] [,4] [1,] 240 21 25 228 [2,] 18 235 231 30 [3,] 19 234 230 31 [4,] 237 24 28 225 , , 3, 1 [,1] [,2] [,3] [,4] [1,] 224 37 41 212 [2,] 34 219 215 46 [3,] 35 218 214 47 [4,] 221 40 44 209 , , 4, 1 [,1] [,2] [,3] [,4] [1,] 49 204 200 61 [2,] 207 54 58 195 [3,] 206 55 59 194 [4,] 52 201 197 64 , , 1, 2 [,1] [,2] [,3] [,4] [1,] 192 69 73 180 [2,] 66 187 183 78 [3,] 67 186 182 79 [4,] 189 72 76 177 , , 2, 2 [,1] [,2] [,3] [,4] [1,] 81 172 168 93 [2,] 175 86 90 163 [3,] 174 87 91 162 [4,] 84 169 165 96 , , 3, 2 [,1] [,2] [,3] [,4] [1,] 97 156 152 109 [2,] 159 102 106 147 [3,] 158 103 107 146 [4,] 100 153 149 112 , , 4, 2 [,1] [,2] [,3] [,4] [1,] 144 117 121 132 [2,] 114 139 135 126 [3,] 115 138 134 127 [4,] 141 120 124 129 , , 1, 3 [,1] [,2] [,3] [,4] [1,] 128 133 137 116 [2,] 130 123 119 142 [3,] 131 122 118 143 [4,] 125 136 140 113 , , 2, 3 [,1] [,2] [,3] [,4] [1,] 145 108 104 157 [2,] 111 150 154 99 [3,] 110 151 155 98 [4,] 148 105 101 160 , , 3, 3 [,1] [,2] [,3] [,4] [1,] 161 92 88 173 [2,] 95 166 170 83 [3,] 94 167 171 82 [4,] 164 89 85 176 , , 4, 3 [,1] [,2] [,3] [,4] [1,] 80 181 185 68 [2,] 178 75 71 190 [3,] 179 74 70 191 [4,] 77 184 188 65 , , 1, 4 [,1] [,2] [,3] [,4] [1,] 193 60 56 205 [2,] 63 198 202 51 [3,] 62 199 203 50 [4,] 196 57 53 208 , , 2, 4 [,1] [,2] [,3] [,4] [1,] 48 213 217 36 [2,] 210 43 39 222 [3,] 211 42 38 223 [4,] 45 216 220 33 , , 3, 4 [,1] [,2] [,3] [,4] [1,] 32 229 233 20 [2,] 226 27 23 238 [3,] 227 26 22 239 [4,] 29 232 236 17 , , 4, 4 [,1] [,2] [,3] [,4] [1,] 241 12 8 253 [2,] 15 246 250 3 [3,] 14 247 251 2 [4,] 244 9 5 256 > magichypercube.4n(2,d=3) , , 1 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 512 9 17 488 480 41 49 456 [2,] 2 503 495 26 34 471 463 58 [3,] 3 502 494 27 35 470 462 59 [4,] 509 12 20 485 477 44 52 453 [5,] 508 13 21 484 476 45 53 452 [6,] 6 499 491 30 38 467 459 62 [7,] 7 498 490 31 39 466 458 63 [8,] 505 16 24 481 473 48 56 449 , , 2 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 65 440 432 89 97 408 400 121 [2,] 447 74 82 423 415 106 114 391 [3,] 446 75 83 422 414 107 115 390 [4,] 68 437 429 92 100 405 397 124 [5,] 69 436 428 93 101 404 396 125 [6,] 443 78 86 419 411 110 118 387 [7,] 442 79 87 418 410 111 119 386 [8,] 72 433 425 96 104 401 393 128 , , 3 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 129 376 368 153 161 344 336 185 [2,] 383 138 146 359 351 170 178 327 [3,] 382 139 147 358 350 171 179 326 [4,] 132 373 365 156 164 341 333 188 [5,] 133 372 364 157 165 340 332 189 [6,] 379 142 150 355 347 174 182 323 [7,] 378 143 151 354 346 175 183 322 [8,] 136 369 361 160 168 337 329 192 , , 4 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 320 201 209 296 288 233 241 264 [2,] 194 311 303 218 226 279 271 250 [3,] 195 310 302 219 227 278 270 251 [4,] 317 204 212 293 285 236 244 261 [5,] 316 205 213 292 284 237 245 260 [6,] 198 307 299 222 230 275 267 254 [7,] 199 306 298 223 231 274 266 255 [8,] 313 208 216 289 281 240 248 257 , , 5 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 256 265 273 232 224 297 305 200 [2,] 258 247 239 282 290 215 207 314 [3,] 259 246 238 283 291 214 206 315 [4,] 253 268 276 229 221 300 308 197 [5,] 252 269 277 228 220 301 309 196 [6,] 262 243 235 286 294 211 203 318 [7,] 263 242 234 287 295 210 202 319 [8,] 249 272 280 225 217 304 312 193 , , 6 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 321 184 176 345 353 152 144 377 [2,] 191 330 338 167 159 362 370 135 [3,] 190 331 339 166 158 363 371 134 [4,] 324 181 173 348 356 149 141 380 [5,] 325 180 172 349 357 148 140 381 [6,] 187 334 342 163 155 366 374 131 [7,] 186 335 343 162 154 367 375 130 [8,] 328 177 169 352 360 145 137 384 , , 7 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 385 120 112 409 417 88 80 441 [2,] 127 394 402 103 95 426 434 71 [3,] 126 395 403 102 94 427 435 70 [4,] 388 117 109 412 420 85 77 444 [5,] 389 116 108 413 421 84 76 445 [6,] 123 398 406 99 91 430 438 67 [7,] 122 399 407 98 90 431 439 66 [8,] 392 113 105 416 424 81 73 448 , , 8 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 64 457 465 40 32 489 497 8 [2,] 450 55 47 474 482 23 15 506 [3,] 451 54 46 475 483 22 14 507 [4,] 61 460 468 37 29 492 500 5 [5,] 60 461 469 36 28 493 501 4 [6,] 454 51 43 478 486 19 11 510 [7,] 455 50 42 479 487 18 10 511 [8,] 57 464 472 33 25 496 504 1 > > > > cleanEx(); ..nameEx <- "magicplot" > > ### * magicplot > > flush(stderr()); flush(stdout()) > > ### Name: magicplot > ### Title: Joins consecutive numbers of a magic square. > ### Aliases: magicplot > ### Keywords: array > > ### ** Examples > > magicplot(magic.4n(2)) > > > > cleanEx(); ..nameEx <- "notmagic.2n" > > ### * notmagic.2n > > flush(stderr()); flush(stdout()) > > ### Name: notmagic.2n > ### Title: An unmagic square > ### Aliases: notmagic.2n > ### Keywords: array > > ### ** Examples > > notmagic.2n(4) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 1 16 17 32 33 48 49 64 [2,] 63 50 47 34 31 18 15 2 [3,] 3 14 19 30 35 46 51 62 [4,] 61 52 45 36 29 20 13 4 [5,] 5 12 21 28 37 44 53 60 [6,] 59 54 43 38 27 22 11 6 [7,] 7 10 23 26 39 42 55 58 [8,] 57 56 41 40 25 24 9 8 > is.magic(notmagic.2n(4)) [1] FALSE > is.semimagic(notmagic.2n(4)) [1] FALSE > > > > > cleanEx(); ..nameEx <- "panmagic.4" > > ### * panmagic.4 > > flush(stderr()); flush(stdout()) > > ### Name: panmagic.4 > ### Title: Panmagic squares of order 4 > ### Aliases: panmagic.4 > ### Keywords: array > > ### ** Examples > > panmagic.4() [,1] [,2] [,3] [,4] [1,] 6 12 7 9 [2,] 15 1 14 4 [3,] 10 8 11 5 [4,] 3 13 2 16 > panmagic.4(2^c(1,3,2,0)) [,1] [,2] [,3] [,4] [1,] 7 12 13 2 [2,] 14 1 8 11 [3,] 4 15 10 5 [4,] 9 6 3 16 > panmagic.4(10^(0:3)) [,1] [,2] [,3] [,4] [1,] 102 1012 111 1001 [2,] 1111 1 1102 12 [3,] 1002 112 1011 101 [4,] 11 1101 2 1112 > > > > cleanEx(); ..nameEx <- "panmagic.8" > > ### * panmagic.8 > > flush(stderr()); flush(stdout()) > > ### Name: panmagic.8 > ### Title: Panmagic squares of order 8 > ### Aliases: panmagic.8 > ### Keywords: array > > ### ** Examples > > is.panmagic(panmagic.8(chosen=2:7)) [1] TRUE > is.normal(panmagic.8(chosen=2:7)) [1] FALSE > is.normal(panmagic.8(chosen=c(1,2,3,6,7,8))) [1] FALSE > > #to see the twelve basis magic carpets, set argument this-is-escaped-codenormal-bracket20bracket-normal to each > #integer from 1 to 12 in turn, with vals=1: > > panmagic.8(chosen=1,vals=1)-1 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 1 1 0 0 1 1 0 0 [2,] 0 0 1 1 0 0 1 1 [3,] 1 1 0 0 1 1 0 0 [4,] 0 0 1 1 0 0 1 1 [5,] 0 0 1 1 0 0 1 1 [6,] 1 1 0 0 1 1 0 0 [7,] 0 0 1 1 0 0 1 1 [8,] 1 1 0 0 1 1 0 0 > image(panmagic.8(chosen=12,vals=1)) > > > > > cleanEx(); ..nameEx <- "perfectcube5" > > ### * perfectcube5 > > flush(stderr()); flush(stdout()) > > ### Name: perfectcube5 > ### Title: A perfect magic cube of order 5 > ### Aliases: perfectcube5 > ### Keywords: datasets > > ### ** Examples > > data(perfectcube5) > is.perfect(perfectcube5) [1] TRUE > > > > cleanEx(); ..nameEx <- "perfectcube6" > > ### * perfectcube6 > > flush(stderr()); flush(stdout()) > > ### Name: perfectcube6 > ### Title: A perfect cube of order 6 > ### Aliases: perfectcube6 > ### Keywords: datasets > > ### ** Examples > > data(perfectcube6) > is.perfect(perfectcube6) [1] TRUE > is.magichypercube(perfectcube6[2:5,2:5,2:5]) [1] TRUE > > > > cleanEx(); ..nameEx <- "process" > > ### * process > > flush(stderr()); flush(stdout()) > > ### Name: process > ### Title: Force index arrays into range > ### Aliases: process > ### Keywords: array > > ### ** Examples > > # extract the broken diagonal of magic.2np1(4) that passes > # through element [1,5]: > > a <- magic.2np1(4) > index <- t(c(1,5)+rbind(1:9,1:9)) > a[process(index,9)] [1] 22 43 55 76 16 28 49 70 1 > > > > cleanEx(); ..nameEx <- "recurse" > > ### * recurse > > flush(stderr()); flush(stdout()) > > ### Name: recurse > ### Title: Recursively apply a permutation > ### Aliases: recurse > ### Keywords: array > > ### ** Examples > > recurse(start=rnorm(10),perm=sample(10),i=3) [1] 0.4874291 -2.2146999 0.5757814 1.1249309 0.3898432 -0.6212406 [7] -0.8204684 1.5117812 0.7383247 -0.3053884 > > > > cleanEx(); ..nameEx <- "shift" > > ### * shift > > flush(stderr()); flush(stdout()) > > ### Name: shift > ### Title: Shift origin of arrays and vectors > ### Aliases: shift ashift > ### Keywords: array > > ### ** Examples > > shift(1:10,3) [1] 8 9 10 1 2 3 4 5 6 7 > m <- matrix(1:100,10,10) > ashift(m,c(1,1)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 100 10 20 30 40 50 60 70 80 90 [2,] 91 1 11 21 31 41 51 61 71 81 [3,] 92 2 12 22 32 42 52 62 72 82 [4,] 93 3 13 23 33 43 53 63 73 83 [5,] 94 4 14 24 34 44 54 64 74 84 [6,] 95 5 15 25 35 45 55 65 75 85 [7,] 96 6 16 26 36 46 56 66 76 86 [8,] 97 7 17 27 37 47 57 67 77 87 [9,] 98 8 18 28 38 48 58 68 78 88 [10,] 99 9 19 29 39 49 59 69 79 89 > ashift(m,c(0,1)) #note columns shifted by 1, rows unchanged. [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 91 1 11 21 31 41 51 61 71 81 [2,] 92 2 12 22 32 42 52 62 72 82 [3,] 93 3 13 23 33 43 53 63 73 83 [4,] 94 4 14 24 34 44 54 64 74 84 [5,] 95 5 15 25 35 45 55 65 75 85 [6,] 96 6 16 26 36 46 56 66 76 86 [7,] 97 7 17 27 37 47 57 67 77 87 [8,] 98 8 18 28 38 48 58 68 78 88 [9,] 99 9 19 29 39 49 59 69 79 89 [10,] 100 10 20 30 40 50 60 70 80 90 > ashift(m,dim(m)) #m unchanged (Mnemonic). [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 1 11 21 31 41 51 61 71 81 91 [2,] 2 12 22 32 42 52 62 72 82 92 [3,] 3 13 23 33 43 53 63 73 83 93 [4,] 4 14 24 34 44 54 64 74 84 94 [5,] 5 15 25 35 45 55 65 75 85 95 [6,] 6 16 26 36 46 56 66 76 86 96 [7,] 7 17 27 37 47 57 67 77 87 97 [8,] 8 18 28 38 48 58 68 78 88 98 [9,] 9 19 29 39 49 59 69 79 89 99 [10,] 10 20 30 40 50 60 70 80 90 100 > > > > cleanEx(); ..nameEx <- "strachey" > > ### * strachey > > flush(stderr()); flush(stdout()) > > ### Name: strachey > ### Title: Strachey's algorithm for magic squares > ### Aliases: strachey > ### Keywords: array > > ### ** Examples > > strachey(3) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [1,] 177 186 195 1 10 19 28 128 137 146 99 108 68 [2,] 185 194 154 9 18 27 29 136 145 105 107 116 76 [3,] 193 153 155 17 26 35 37 144 104 106 115 124 84 [4,] 5 161 163 172 34 36 45 103 112 114 123 132 85 [5,] 160 162 171 33 42 44 4 111 113 122 131 140 93 [6,] 168 170 179 41 43 3 12 119 121 130 139 141 52 [7,] 169 178 187 49 2 11 20 120 129 138 147 100 60 [8,] 30 39 48 148 157 166 175 79 88 97 50 59 117 [9,] 38 47 7 156 165 174 176 87 96 56 58 67 125 [10,] 46 6 8 164 173 182 184 95 55 57 66 75 133 [11,] 152 14 16 25 181 183 192 54 63 65 74 83 134 [12,] 13 15 24 180 189 191 151 62 64 73 82 91 142 [13,] 21 23 32 188 190 150 159 70 72 81 90 92 101 [14,] 22 31 40 196 149 158 167 71 80 89 98 51 109 [,14] [1,] 77 [2,] 78 [3,] 86 [4,] 94 [5,] 53 [6,] 61 [7,] 69 [8,] 126 [9,] 127 [10,] 135 [11,] 143 [12,] 102 [13,] 110 [14,] 118 > strachey(2,square=magic(5)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 84 77 25 18 11 59 52 75 68 36 [2,] 78 96 19 12 10 53 71 69 62 35 [3,] 22 95 88 6 4 72 70 63 56 29 [4,] 91 89 7 5 23 66 64 57 55 48 [5,] 90 83 1 24 17 65 58 51 74 42 [6,] 9 2 100 93 86 34 27 50 43 61 [7,] 3 21 94 87 85 28 46 44 37 60 [8,] 97 20 13 81 79 47 45 38 31 54 [9,] 16 14 82 80 98 41 39 32 30 73 [10,] 15 8 76 99 92 40 33 26 49 67 > > strachey(2,square=magic(5)) %eq% strachey(2,square=t(magic(5))) [1] FALSE > #should be FALSE > > #Show which numbers have been swapped: > strachey(2,square=matrix(0,5,5)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 75 75 0 0 0 50 50 50 50 25 [2,] 75 75 0 0 0 50 50 50 50 25 [3,] 0 75 75 0 0 50 50 50 50 25 [4,] 75 75 0 0 0 50 50 50 50 25 [5,] 75 75 0 0 0 50 50 50 50 25 [6,] 0 0 75 75 75 25 25 25 25 50 [7,] 0 0 75 75 75 25 25 25 25 50 [8,] 75 0 0 75 75 25 25 25 25 50 [9,] 0 0 75 75 75 25 25 25 25 50 [10,] 0 0 75 75 75 25 25 25 25 50 > > #It's still magic, but not normal: > is.magic(strachey(2,square=matrix(0,5,5))) [1] TRUE > > > > cleanEx(); ..nameEx <- "subsums" > > ### * subsums > > flush(stderr()); flush(stdout()) > > ### Name: subsums > ### Title: Sums of submatrices > ### Aliases: subsums > ### Keywords: array > > ### ** Examples > > data(Ollerenshaw) > subsums(Ollerenshaw,c(2,2)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [1,] 286 286 286 286 286 286 286 286 286 286 286 286 [2,] 286 286 286 286 286 286 286 286 286 286 286 286 [3,] 286 286 286 286 286 286 286 286 286 286 286 286 [4,] 286 286 286 286 286 286 286 286 286 286 286 286 [5,] 286 286 286 286 286 286 286 286 286 286 286 286 [6,] 286 286 286 286 286 286 286 286 286 286 286 286 [7,] 286 286 286 286 286 286 286 286 286 286 286 286 [8,] 286 286 286 286 286 286 286 286 286 286 286 286 [9,] 286 286 286 286 286 286 286 286 286 286 286 286 [10,] 286 286 286 286 286 286 286 286 286 286 286 286 [11,] 286 286 286 286 286 286 286 286 286 286 286 286 [12,] 286 286 286 286 286 286 286 286 286 286 286 286 > subsums(Ollerenshaw[,1:10],c(2,2)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 286 286 286 286 286 286 286 286 286 286 [2,] 286 286 286 286 286 286 286 286 286 286 [3,] 286 286 286 286 286 286 286 286 286 286 [4,] 286 286 286 286 286 286 286 286 286 286 [5,] 286 286 286 286 286 286 286 286 286 286 [6,] 286 286 286 286 286 286 286 286 286 286 [7,] 286 286 286 286 286 286 286 286 286 286 [8,] 286 286 286 286 286 286 286 286 286 286 [9,] 286 286 286 286 286 286 286 286 286 286 [10,] 286 286 286 286 286 286 286 286 286 286 [11,] 286 286 286 286 286 286 286 286 286 286 [12,] 286 286 286 286 286 286 286 286 286 286 > subsums(Ollerenshaw, matrix(c(0,6),2,2)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [1,] 143 143 143 143 143 143 143 143 143 143 143 143 [2,] 143 143 143 143 143 143 143 143 143 143 143 143 [3,] 143 143 143 143 143 143 143 143 143 143 143 143 [4,] 143 143 143 143 143 143 143 143 143 143 143 143 [5,] 143 143 143 143 143 143 143 143 143 143 143 143 [6,] 143 143 143 143 143 143 143 143 143 143 143 143 [7,] 143 143 143 143 143 143 143 143 143 143 143 143 [8,] 143 143 143 143 143 143 143 143 143 143 143 143 [9,] 143 143 143 143 143 143 143 143 143 143 143 143 [10,] 143 143 143 143 143 143 143 143 143 143 143 143 [11,] 143 143 143 143 143 143 143 143 143 143 143 143 [12,] 143 143 143 143 143 143 143 143 143 143 143 143 > > > > cleanEx(); ..nameEx <- "transf" > > ### * transf > > flush(stderr()); flush(stdout()) > > ### Name: transf > ### Title: Frenicle's equivalent magic squares > ### Aliases: transf > ### Keywords: array > > ### ** Examples > > a <- magic(3) > identical(transf(a,0),a) [1] TRUE > > transf(a,1) [,1] [,2] [,3] [1,] 2 9 4 [2,] 7 5 3 [3,] 6 1 8 > transf(a,2) [,1] [,2] [,3] [1,] 4 3 8 [2,] 9 5 1 [3,] 2 7 6 > > transf(a,1) %eq% transf(a,7) [1] TRUE > > > > > ### *