Non-Riemannian Complex Manifolds for the HP-41
Overview
-These programs calculate the components of a few tensors in complex manifolds, even if the connexion is different from the Christoffel symbols:
• Curvature Tensor
• Ricci Tensor & Segmental Curvature
Tensor
• Scalar Curvature
• Torsion Tensor
• Torsion Vector
-Several subroutines from the module "ZDERIVE41" are called.
-See also "Complex Derivatives & Riemannian Manifolds
for the HP-41"
M-Code Routine
-A function ( hidden in the "-ZDIFFMANIF" header in the
module ) places "CIJK" in alpha provided Z = i Y = j
X = k
-Change its name as you like...
-It could be replaced by "C" ARCL Z ARCL Y ARCL
X provided FIX 0 CF 29 are added at the beginning
of the routines.
086 "F"
009 "I"
00E "N"
001 "A"
00D "M"
006 "F"
006 "F"
009 "I"
004 "D"
01A "Z"
02D "-"
04E C=0
168 M=C
1A8 N=C
1E8 O=C
228 P=C
29C PT=7
110 LD@PT- 4
0D0 LD@PT- 3
0D0 LD@PT- 3
010 LD@PT- 0
0D0 LD@PT- 3
010 LD@PT- 0
0D0 LD@PT- 3
10E A=C ALL
078 C=Z
13C RCR 8
05C PT=4
102 A=C @PT
0B8 C=Y
0FC RCR 10
21C PT=2
102 A=C @PT
0F8 C=X
37C RCR 12
39C PT=0
102 A=C @PT
0AE A<>C ALL
168 M=C
3E0 RTN
Program Listing
-The following listing actually combines 5 routines: "ZRIJK+L"
"ZRQIJ" "ZRQ" "ZSIJK" "ZSJ"
Data Registers: R00 temp ( Registers R01 thru R2n , R09 & R10 are to be initialized before executing these routines )
• R01-R02 = x1 , • R03-R04 = x2 , .......... , • R2n-1-R2n = xn
• R09 = n < 5 • R10 = h
Flags: F00-F02-F09-F10
Subroutines: "ZFD" and the programs
that compute the Gkij
assuming x1 , ............ , xn are in R01
thru R2n
-Lines 96-130 are three-byte GTOs
01 LBL "ZRIJK+L"
02 LBL 10 03 STO 14 04 RDN 05 STO 13 06 RDN 07 STO 12 08 X<>Y 09 STO 11 10 RCL 09 11 STO 15 12 CLX 13 STO 18 14 STO 19 15 LBL 01 16 CLX 17 STO 22 18 STO 23 19 RCL 15 20 RCL 13 21 FS? 02 22 X<>Y 23 RCL 14 24 -ZDIFFMANIF 25 ASTO X 26 XEQ IND X 27 SIGN 28 X=0? 29 GTO 00 30 X<>Y 31 STO 23 32 LASTX 33 STO 22 34 LBL 00 35 RCL 11 36 RCL 12 37 FS? 02 38 X<>Y |
39 RCL 15
40 -ZDIFFMANIF 41 ASTO X 42 XEQ IND X 43 SIGN 44 X=0? 45 ENTER 46 X#0? 47 X<> L 48 RCL 23 49 RCL 22 50 Z*Z 51 STO 22 52 X<>Y 53 STO 23 54 CLX 55 STO 24 56 STO 25 57 RCL 15 58 RCL 12 59 FS? 02 60 X<>Y 61 RCL 14 62 -ZDIFFMANIF 63 ASTO X 64 XEQ IND X 65 SIGN 66 X=0? 67 GTO 00 68 X<>Y 69 STO 25 70 LASTX 71 STO 24 72 LBL 00 73 RCL 11 74 RCL 13 75 FS? 02 76 X<>Y |
77 RCL 15
78 -ZDIFFMANIF 79 ASTO X 80 XEQ IND X 81 SIGN 82 X=0? 83 ENTER 84 X#0? 85 X<> L 86 RCL 25 87 RCL 24 88 Z*Z 89 RCL 23 90 RCL 22 91 Z-Z 92 ST+ 18 93 X<>Y 94 ST+ 19 95 DSE 15 96 GTO 01 97 RCL 11 98 STO 21 99 RCL 12 100 STO 22 101 FS? 02 102 X<>Y 103 RCL 14 104 STO 24 105 -ZDIFFMANIF 106 ASTO 00 107 RCL 10 108 RCL 13 109 STO 23 110 XROM "ZFD" 111 ST- 18 112 X<>Y 113 ST- 19 114 RCL 21 |
115 RCL 23
116 FS? 02 117 X<>Y 118 RCL 24 119 -DIFZFMANIF 120 ASTO 00 121 RCL 10 122 RCL 22 123 XROM "ZFD" 124 ST+ 18 125 X<>Y 126 ST+ 19 127 RCL 19 128 RCL 18 129 RTN 130 GTO 10 131 LBL "ZRQIJ" 132 LBL 12 133 CF 09 134 GTO 00 135 LBL 13 136 SF 09 137 LBL 00 138 STO 23 139 X<>Y 140 STO 28 141 RCL 09 142 STO 24 143 CLX 144 STO 20 145 STO 27 146 LBL 02 147 RCL 28 148 RCL 24 149 FS? 00 150 X<>Y 151 RCL 23 152 RCL 24 |
153 XEQ 10
154 ST+ 20 155 X<>Y 156 ST+ 27 157 DSE 24 158 GTO 02 159 RCL 27 160 RCL 20 161 FS? 09 162 GTO 14 163 RTN 164 GTO 12 165 LBL "ZRQ" 166 LBL 09 167 RCL 09 168 STO 28 169 CLX 170 STO 32 171 STO 33 172 LBL 03 173 RCL 09 174 STO 29 175 LBL 04 176 RCL 28 177 RCL 29 178 ENTER 179 CLX 180 ZCIJK 181 Z=0? 182 GTO 00 183 STO 30 184 X<>Y 185 STO 31 186 RCL 28 187 RCL 29 188 GTO 13 189 LBL 14 190 RCL 31 |
191 RCL 30
192 Z*Z 193 ST+ 32 194 X<>Y 195 ST+ 33 196 LBL 00 197 DSE 29 198 GTO 04 199 DSE 28 200 GTO 03 201 RCL 33 202 RCL 32 203 RTN 204 GTO 09 205 LBL "ZSIJK" 206 LBL 05 207 STO 13 208 RDN 209 STO 12 210 X<>Y 211 STO 11 212 R^ 213 -ZDIFFMANIF 214 ASTO X 215 XEQ IND X 216 SIGN 217 X=0? 218 ENTER 219 X#0? 220 X<> L 221 STO 14 222 X<>Y 223 STO 15 224 RCL 11 225 RCL 12 226 RCL 13 227 -ZDIFFMANIF 228 ASTO X |
229 XEQ IND X
230 SIGN 231 X=0? 232 ENTER 233 X#0? 234 X<> L 235 RCL 15 236 RCL 14 237 Z-Z 238 STO 14 239 X<>Y 240 STO 15 241 X<>Y 242 RTN 243 GTO 05 244 LBL "ZSJ" 245 LBL 06 246 STO 11 247 RCL 09 248 STO 12 249 CLX 250 STO 16 251 STO 17 252 LBL 07 253 RCL 11 254 RCL 12 255 ENTER 256 XEQ 05 257 ST+ 16 258 X<>Y 259 ST+ 17 260 DSE 12 261 GTO 07 262 RCL 17 263 RCL 16 264 RTN 265 GTO 06 266 END |
( 447 bytes / SIZE var. )
-In the following examples, we assume a 2-dimensional complex manifold where the connections are defined by
G111 =
x2 y
G211
= x2 y2
G112
= x y
G212
= x + y
G121
= - x y G221=
x - y
G122
= x y2
G222
= x2 + y2
>>> Store 2 in register R09 ( the dimension of the
manifold )
-Load the following routines in main memory
01 LBL "C111"
02 RCL 02 03 RCL 01 04 Z^2 05 RCL 04 06 RCL 03 07 Z*Z 08 RTN 09 LBL "C121" 10 RCL 04 11 RCL 03 12 RCL 02 13 RCL 01 |
14 Z*Z
15 RTN 16 LBL "C211" 17 RCL 04 18 RCL 03 19 RCL 02 20 CHS 21 RCL 01 22 CHS 23 Z*Z 24 RTN 25 LBL "C221" 26 RCL 04 |
27 RCL 03
28 Z^2 29 RCL 02 30 RCL 01 31 Z*Z 32 RTN 33 LBL "C112" 34 RCL 04 35 RCL 03 36 RCL 02 37 RCL 01 38 Z*Z 39 Z^2 |
40 RTN
41 LBL "C122" 42 RCL 04 43 RCL 03 44 RCL 02 45 RCL 01 46 Z+Z 47 RTN 48 LBL "C212" 49 RCL 02 50 RCL 01 51 RCL 04 52 RCL 03 |
53 Z-Z
54 RTN 55 LBL "C222" 56 RCL 02 57 RCL 01 58 Z^2 59 RCL 04 60 RCL 03 61 Z^2 62 Z+Z 63 RTN 64 END |
-At the point x = ( 1+2.i , 3-4.i )
1 STO 01 3 STO 03
2 STO 02 4 CHS
STO 04
-If you choose h = -0.01 to evaluate the derivatives ( with formulas
of order 4 ) 0.01 CHS STO 10
1-Curvature Tensor(s)
Rlijk = ¶jGlik
- ¶kGlij
+ GlmjGmik
- GlmkGmij
if CF 02
Rlijk = ¶jGlki
- ¶kGlji
+ GljmGmki
- GlkmGmji
if SF 02
STACK | INPUTS | OUTPUTS |
T | i | / |
Z | j | / |
Y | k | Im Rlijk |
X | l | Re Rlijk |
Example:
CF 02
1 ENTER^
1 ENTER^
2 ENTER^
2 XEQ "ZRIJK+L" >>>> 1404
---Execution time = 18s---
X<>Y 3396
-So, R2112 = 1404 + 3396 i
SF 02
1 ENTER^
1 ENTER^
2 ENTER^
2 XEQ "ZRIJK+L" >>>> -760
---Execution time = 18s---
X<>Y 2048
-So, R2112 = -760 + 2048 i
2-Ricci tensor Rij and segmental curvature tensor Qij
Rij = Rmimj
Qij = Rmmij
= ¶iGmmj
- ¶jGmmi
is actually a curl. ( equals zero in Riemannian manifolds )
If CF 00 "ZRQIJ" returns the components of
Rij
-If CF 02 with the connexion
Gkij
-If SF 02 with the connexion
Gkji
If SF 00 "ZRQIJ" returns the components of Qij
-If CF 02 with the connexion
Gkij
-If SF 02 with the connexion
Gkji
STACK | INPUTS | OUTPUTS |
Y | i | Im ( Rij or Qij ) |
X | j | Re ( Rij or Qij ) |
Rij if CF 00 (
connexion Gkij if CF 02
, transpose connexion Gkji
if SF 02 )
Qij if SF 00
( connexion Gkij if CF
02 , transpose connexion Gkji
if SF 02 )
Examples:
CF 00 CF 02
1 ENTER^
2 XEQ "ZRQIJ" >>>> -6511
---Execution time = 36s---
X<>Y 2648
-Thus, R12 = -6511 + 2648 i
CF 00 SF 02
1 ENTER^
2 XEQ "ZRQIJ" >>>> -6503
---Execution time = 36s---
X<>Y 2704
-So, R12 = -6503 + 2704 i
SF 00 CF 02
1 ENTER^
2 XEQ "ZRQIJ" >>>>
9
---Execution time = 37s---
X<>Y -4
-Thus, R12 = 9 - 4 i
SF 00 SF 02
1 ENTER^
2 XEQ "ZRQIJ" >>>>
1
---Execution time = 37s---
X<>Y 4
-Thus, R12 = 1 + 4 i
3-Scalar Curvatures
-The contracted tensors R = gij Rij and Q = gij Qij gives 2 scalar curvatures
"ZRQ" returns R if CF 00 with 2 different
results if F02 is clear or not
"ZRQ" returns Q if SF 00 with 2 different
results if F02 is clear or not
-To obtain correct results, "ZINIGC" must be executed before "ZRQ" to store gij in the proper registers.
-So, we need the metric tensor gij
>>> Assuming we have
g11 = 1 + x2 g12
= g21 = x y
g22 = 1 + y2
01 LBL "G11"
02 RCL 02 03 RCL 01 04 Z^2 05 1 06 + 07 RTN 08 LBL "G12" 09 RCL 04 10 RCL 03 11 RCL 02 12 RCL 01 13 Z*Z 14 RTN 15 LBL "G22" 16 RCL 04 17 RCL 03 18 Z^2 19 1 20 + 21 RTN |
0.01 CHS ENTER^
2 XEQ "ZINIGC" >>>>
61.084
>>> Since it's not necessary to compute the Christoffel symbols, you
can stop the routine as soon as the countdown starts.
STACK | INPUT | OUTPUT |
Y | / | Im ( R or Q ) |
X | / | Re ( R or Q ) |
R if CF 00 ( connexion Gkij
if CF 02 , transpose connexion Gkji
if SF 02 )
Q if SF 00 ( connexion Gkij
if CF 02 , transpose connexion Gkji
if SF 02 )
Examples:
CF 00 CF 02
XEQ "ZRQ" >>>> -2475.943865
---Execution time = 2m34s---
X<>Y 2673.875260
-Thus, R = -2475.943865 + 2673.875260 i
CF 00 SF 02
XEQ "ZRQ" >>>> -269.7234920
---Execution time = 2m34s---
X<>Y 4626.274428
-So, R = -269.7234920 + 4626.274428 i
SF 00 CF 02
XEQ "ZRQ" >>>> 0
---Execution time = 2m34s---
X<>Y 0
-Thus, Q = 0
SF 00 SF 02
XEQ "ZRQ" >>>> 0
---Execution time = 2m34s---
X<>Y 0
-Thus, Q = 0
4-Torsion tensor:
"ZSIJK" calculates Skij = Gkij - Gkji
-Though Gkij is not
a tensor, Skij is a tensor !
STACK | INPUTS | OUTPUTS |
Z | i | / |
Y | j | Im Skij |
X | k | Re Skij |
Example:
1 ENTER^
2 ENTER^
2 XEQ "ZSIJK" >>>> 6
---Execution time = 18s---
X<>Y -8
-So, S212 = 6 - 8 i
5-Torsion Vector
-Contracting Skij we get a covariant
vector Sj = Skjk wich is computed
by "ZSJ"
STACK | INPUT | OUTPUT |
Y | / | Im Sj |
X | j | Re Sj |
Example:
2 XEQ "ZSJ" >>>> -22
---Execution time = 7s---
X<>Y -4
-And S2 = -22 - 4 i
References:
[1] Elie Cartan - "Leçons sur la géométrie
des espaces de Riemann" - Gauthier-Villars, Paris ( in French
)
[2] Denis-Papin & Kaufmann - "Cours de calcul Tensoriel Appliqué"
- Albin Michel ( in French )
[3] List
of Formulas in Riemannian Geometry
[4] Nikodem J. Poplawski - "Spacetime and fields"- Department
of Physics, Indiana University, Bloomington, IN 47405, USA
[5] Marie-Antoinette Tonnelat - Theorie unitaire affine du champ
physique. J. Phys. Radium, 1951, 12 (2),
pp.81-88. <10.1051/jphysrad:0195100120208100>.
<jpa-00234360>