| |
|
|
p.specht
| Gestione della memoria dreidimensionaler Matrizen:
XProfan (V. 11.2a) funktioniert mit der "Am-Stück"-Gestione della memoria nur per statisch deklarierte Listen und per Matrizen mit von vorneherein definierter Dimensione. Dann aber lässt sich sicher zugreifen, wenn man die Indexverwaltung (und den Speicherbedarf per ein Einzelelement) richtig einsetzt.
Für eine spätere Umsetzung in Assembler dazu die nachstehende kleine Studie.
WindowTitle "Studie: Speicher- und Zugriffsorganisation"+\
"auf dreidimensionale Matrizen (a.k.a. Tensoren)"
Cls:randomize
'Speicherbedarf eines Einzelwertes (XProfan):
var SB&=8'Double precision Floatingpoint: 8 Byte
'Stellenzahlen
var xm&=2
var ym&=2
var zm&=2
declare x&,y&,z&, M![xm&-1,ym&-1,zm&-1]
M![]=&index'rnd()
print
print "Händisch per M[x,y,z]:"
print M![0,0,0],M![0,0,1]," ",M![0,1,0],M![0,1,1]
print M![1,0,0],M![1,0,1]," ",M![1,1,0],M![1,1,1]
print
print "Vereinfacher x-Komponentenaufruf:"
print M![0]
print M![1]
print
print "Linear programmierter Aufruf:"
Whileloop 0,zm&-1:z&=&Loop
Whileloop 0,ym&-1:y&=&Loop
whileloop 0,xm&-1:x&=&Loop
print float( addr(M![0]),SB&*(x& * ym&*zm& + y& *zm& + z&)),
EndWhile:print " ";
Endwhile:print
Endwhile:print
waitinput
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 29.05.2021 ▲ |
|
|
|