1% 2% Bug in noncom2 package: redefinition of ordp 3% Petrov Alexander, Aug 2013 4% 5 6on intstr$ 7 8 9 10load_package noncom2; 11 12 13 14 15operator a,ac; 16 17 18noncom a,a; 19 20 21noncom ac,ac; 22 23 24noncom a,ac; 25 26 27 28for all i let a(i)*ac(i) = 1 - ac(i)*a(i); 29 30 31for all i,j such that i neq j let a(i)*ac(j) = -ac(j)*a(i); 32 33 34for all i,j such that ordp(i,j) let a(i)*a(j) = -a(j)*a(i); 35 36 37for all i,j such that ordp(i,j) let ac(i)*ac(j) = -ac(j)*ac(i); 38 39 40 41operator a2,a2c; 42 43 44noncom a2,a2; 45 46 47noncom a2c,a2c; 48 49 50noncom a2,a2c; 51 52 53 54for all i let a2(i)*a2c(i) = 1 - a2c(i)*a2(i); 55 56 57for all i,j such that i neq j let a2(i)*a2c(j) = -a2c(j)*a2(i); 58 59 60for all i,j such that ordp(i,j) let a2(i)*a2(j) = -a2(j)*a2(i); 61 62 63for all i,j such that ordp(i,j) let a2c(i)*a2c(j) = -a2c(j)*a2c(i); 64 65 66 67 68operator !H; 69 70 71!H := !J1*ac(i)*a(i+1) + !J1*ac(i+1)*a(i); 72 73 74H := J1*(ac(i + 1)*a(i) + ac(i)*a(i + 1)) 75 76 77operator !U,!U!T,!V,!V!T; 78 79 80 81sub_fermi := { a(~i) => !U(i,j1)*a2(j1) + !V(i,j1)*a2c(j1), 82 ac(~i) => !V!T(i,j2)*a2(j2) + !U!T(i,j2)*a2c(j2) }; 83 84 85sub_fermi := {a(~i) => U(i,j1)*a2(j1) + V(i,j1)*a2c(j1), 86 87 ac(~i) => VT(i,j2)*a2(j2) + UT(i,j2)*a2c(j2)} 88 89!H2 := (!H where sub_fermi); 90 91 92H2 := J1*(a2(j2)*a2(j1)*U(i + 1,j1)*VT(i,j2) 93 94 + a2(j2)*a2(j1)*U(i,j1)*VT(i + 1,j2) 95 96 - a2c(j1)*a2(j2)*V(i + 1,j1)*VT(i,j2) 97 98 - a2c(j1)*a2(j2)*V(i,j1)*VT(i + 1,j2) 99 100 + a2c(j2)*a2(j1)*U(i + 1,j1)*UT(i,j2) 101 102 + a2c(j2)*a2(j1)*U(i,j1)*UT(i + 1,j2) 103 104 + a2c(j2)*a2c(j1)*UT(i + 1,j2)*V(i,j1) 105 106 + a2c(j2)*a2c(j1)*UT(i,j2)*V(i + 1,j1)) 107 108on factor; 109 110 111!H2; 112 113 114 - J1*(a2c(j1)*a2(j2)*V(i + 1,j1)*VT(i,j2) + a2c(j1)*a2(j2)*V(i,j1)*VT(i + 1,j2) 115 116 - a2c(j2)*(a2(j1)*U(i + 1,j1)*UT(i,j2) + a2(j1)*U(i,j1)*UT(i + 1,j2) 117 118 + a2c(j1)*UT(i + 1,j2)*V(i,j1) + a2c(j1)*UT(i,j2)*V(i + 1,j1)) 119 120 - a2(j2)*a2(j1)*(U(i + 1,j1)*VT(i,j2) + U(i,j1)*VT(i + 1,j2))) 121 122 123end; 124 125Tested on x86_64-pc-windows CSL 126Time (counter 1): 0 ms 127 128End of Lisp run after 0.00+0.06 seconds 129real 0.19 130user 0.04 131sys 0.03 132