-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmap_composition.fox
More file actions
66 lines (52 loc) · 1.19 KB
/
map_composition.fox
File metadata and controls
66 lines (52 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
{ Map composition: verifies that sequential element
construction and re-building give identical maps,
and that element ordering matters. }
INCLUDE 'COSY' ;
PROCEDURE DEMO ;
VARIABLE A 1 ;
VARIABLE BQ NM1 ;
VARIABLE I 1 ;
VARIABLE DEV 1 ;
VARIABLE MAP_FULL NM1 4 ;
A := 0.05 ;
BQ := 0.5 ;
{ build D-Q-D beamline }
UM ;
DL 2.0 ;
MQ 0.5 BQ A ;
DL 3.0 ;
LOOP I 1 4 ; MAP_FULL(I) := MAP(I) ; ENDLOOP ;
WRITE 6 'Sequential construction:' ;
WRITE 6 ' M(1,1) = '&ST(ME(1,1)) ;
WRITE 6 ' M(1,2) = '&ST(ME(1,2)) ;
{ rebuild from scratch }
UM ;
DL 2.0 ;
MQ 0.5 BQ A ;
DL 3.0 ;
DEV := 0 ;
LOOP I 1 4 ;
DEV := DEV + ABS(CONS(MAP(I) - MAP_FULL(I))) ;
ENDLOOP ;
WRITE 6 ' ||rebuild - original|| = '&ST(DEV) ;
{ reversed element order }
UM ;
DL 3.0 ;
MQ 0.5 BQ A ;
DL 2.0 ;
DEV := 0 ;
LOOP I 1 4 ;
DEV := DEV + ABS(CONS(MAP(I) - MAP_FULL(I))) ;
ENDLOOP ;
WRITE 6 ' ' ;
WRITE 6 'Reversed order:' ;
WRITE 6 ' ||reversed - original|| = '&ST(DEV) ;
DEV := ME(1,1)*ME(2,2) - ME(1,2)*ME(2,1) ;
WRITE 6 ' det(M_x) = '&ST(DEV) ;
ENDPROCEDURE ;
PROCEDURE RUN ;
OV 5 2 0 ;
RP 1000 1.00728 1 ;
DEMO ;
ENDPROCEDURE ;
RUN ; END ;