1load_package listvecops; 2 3 4 5a := {a1,a2,a3,a4}; 6 7 8a := {a1,a2,a3,a4} 9 10 11b := {b1,b2,b3,b4}; 12 13 14b := {b1,b2,b3,b4} 15 16 17a + b; 18 19 20{a1 + b1, 21 22 a2 + b2, 23 24 a3 + b3, 25 26 a4 + b4} 27 28 29a - b; 30 31 32{a1 - b1, 33 34 a2 - b2, 35 36 a3 - b3, 37 38 a4 - b4} 39 40 41-a; 42 43 44{ - a1, - a2, - a3, - a4} 45 46 473*x*a +7*y*b; 48 49 50{3*a1*x + 7*b1*y, 51 52 3*a2*x + 7*b2*y, 53 54 3*a3*x + 7*b3*y, 55 56 3*a4*x + 7*b4*y} 57 58 59{a,b} + {b,a}; 60 61 62{{a1 + b1, 63 64 a2 + b2, 65 66 a3 + b3, 67 68 a4 + b4}, 69 70 {a1 + b1, 71 72 a2 + b2, 73 74 a3 + b3, 75 76 a4 + b4}} 77 78 79{a,b} - {b,a}; 80 81 82{{a1 - b1, 83 84 a2 - b2, 85 86 a3 - b3, 87 88 a4 - b4}, 89 90 { - a1 + b1, 91 92 - a2 + b2, 93 94 - a3 + b3, 95 96 - a4 + b4}} 97 98 99a*b; 100 101 102{a1*b1, 103 104 a2*b2, 105 106 a3*b3, 107 108 a4*b4} 109 110 111{a*b,{x,y}}*{{1,1,1,1},{3,5}}; 112 113 114{{a1*b1, 115 116 a2*b2, 117 118 a3*b3, 119 120 a4*b4}, 121 122 {3*x,5*y}} 123 124 125a/b + b/a; 126 127 128 2 2 129 a1 + b1 130{-----------, 131 a1*b1 132 133 2 2 134 a2 + b2 135 -----------, 136 a2*b2 137 138 2 2 139 a3 + b3 140 -----------, 141 a3*b3 142 143 2 2 144 a4 + b4 145 -----------} 146 a4*b4 147 148 1493*a/{1,2,3,4} + {x,y,z,u}*5; 150 151 152{3*a1 + 5*x, 153 154 3*a2 + 10*y 155 -------------, 156 2 157 158 a3 + 5*z, 159 160 3*a4 + 20*u 161 -------------} 162 4 163 164 1651/a; 166 167 168 1 1 1 1 169{----,----,----,----} 170 a1 a2 a3 a4 171 172 173a^3; 174 175 176 3 3 3 3 177{a1 ,a2 ,a3 ,a4 } 178 179 180a^b; 181 182 183 b1 184{a1 , 185 186 b2 187 a2 , 188 189 b3 190 a3 , 191 192 b4 193 a4 } 194 195 196x^a + b; 197 198 199 a1 200{x + b1, 201 202 a2 203 x + b2, 204 205 a3 206 x + b3, 207 208 a4 209 x + b4} 210 211 212a^b; 213 214 215 b1 216{a1 , 217 218 b2 219 a2 , 220 221 b3 222 a3 , 223 224 b4 225 a4 } 226 227 228a *. b; 229 230 231a1*b1 + a2*b2 + a3*b3 + a4*b4 232 233 234{a,{3,5,7,9}} *. {{2,4,6,8},b}; 235 236 2372*a1 + 4*a2 + 6*a3 + 8*a4 + 3*b1 + 5*b2 + 7*b3 + 9*b4 238 239 240a *. log b; 241 242 243log(b1)*a1 + log(b2)*a2 + log(b3)*a3 + log(b4)*a4 244 245 246df({sin x*y,x^3*cos y},x,2,y); 247 248 249{ - sin(x), - 6*sin(y)*x} 250 251 252int({sin x,cos x},x); 253 254 255{ - cos(x),sin(x)} 256 257 258% Example of a list-valued procedure. 259 260listproc spat3(u,v,w); 261 begin scalar x,y; 262 x := u *. w; 263 y := u *. v; 264 return v*x - w*y 265 end; 266 267 268spat3 269 270 271u := {ux,uy,uz}; 272 273 274u := {ux,uy,uz} 275 276v := {vx,vy,vz}; 277 278 279v := {vx,vy,vz} 280 281w := {wx,wy,wz}; 282 283 284w := {wx,wy,wz} 285 286 287z := spat3(u,v,w) - 3*spat3(v,u,w); 288 289 290z := { - 3*ux*vy*wy - 3*ux*vz*wz + uy*vx*wy + 2*uy*vy*wx + uz*vx*wz + 2*uz*vz*wx 291 292 , 293 294 2*ux*vx*wy + ux*vy*wx - 3*uy*vx*wx - 3*uy*vz*wz + uz*vy*wz + 2*uz*vz*wy, 295 296 2*ux*vx*wz + ux*vz*wx + 2*uy*vy*wz + uy*vz*wy - 3*uz*vx*wx - 3*uz*vy*wy} 297 298 299spat3(u,v,w)+spat3(u,w,v); 300 301 302{0,0,0} 303 304 305% Accesing list elements with infix operator _ . 306 307l := {1,{2,3},4}; 308 309 310l := {1,{2,3},4} 311 312 313l _2*3; 314 315 316{6,9} 317 318 319l _2 _2; 320 321 3223 323 324 325 326end; 327 328Tested on x86_64-pc-windows CSL 329Time (counter 1): 0 ms plus GC time: 16 ms 330 331End of Lisp run after 0.00+0.06 seconds 332real 0.21 333user 0.01 334sys 0.07 335