Last change
on this file since 4 was
4,
checked in by zhangj, 10 years ago
|
Initial import--MML version from SOLEIL@2013
|
File size:
1.1 KB
|
Line | |
---|
1 | function [n1 n2] = bucketnumber(num) |
---|
2 | %BUCKETNUMBER - Computes n1 n2 for timing system master board for a bucket |
---|
3 | %number. |
---|
4 | % |
---|
5 | % INPUTS |
---|
6 | % 1. num - Bucket number |
---|
7 | % |
---|
8 | % OUPUTS |
---|
9 | % 1. n1 - number of step for extraction table |
---|
10 | % 2. n2 - number of step for linac table |
---|
11 | % |
---|
12 | % ALGORITHM |
---|
13 | % Table extraction n1 entier compris entre 0 et 51 |
---|
14 | % Table Linac n2 entier compris entre 0 et 7 |
---|
15 | % n1 = 0; n2 = 0; injection dans paquet 1 de l'anneau |
---|
16 | % n1 = 0; n2 = 1; injection dans paquet 2 de l'anneau |
---|
17 | |
---|
18 | % |
---|
19 | % Written by Laurent S. Nadolski |
---|
20 | |
---|
21 | num = num - 1; |
---|
22 | n2 = mod(num,8); |
---|
23 | d = fix(num/8); |
---|
24 | [u v] = bezout(52,23,d); |
---|
25 | n1 = v; |
---|
26 | |
---|
27 | %fprintf('n1 = %d n2 = %d\n', n1, n2) |
---|
28 | %fprintf('Injection dans paquet numero %d\n', mod(n1*184,416) + n2 + 1) |
---|
29 | |
---|
30 | %%%% |
---|
31 | |
---|
32 | function [u v] = bezout(a,b,c) |
---|
33 | % Resolution de 52 u + 23 v = c |
---|
34 | % ou encore 416 u + 184 v = 8*c |
---|
35 | % ou encore de 184 v = 8*c modulo 416 |
---|
36 | % Soit travail dans l'ensemble quotient Z/416Z |
---|
37 | |
---|
38 | % ALGORITHME de BEZOUT |
---|
39 | |
---|
40 | a = 52; |
---|
41 | b = 23; |
---|
42 | |
---|
43 | u = 1; |
---|
44 | v = 0; |
---|
45 | |
---|
46 | s = 0; |
---|
47 | t = c; |
---|
48 | while b > 0 |
---|
49 | q = fix(a/b);r = rem(a,b); |
---|
50 | a = b; b = r; |
---|
51 | tmp = s; |
---|
52 | s = u - q * s; |
---|
53 | u = tmp; tmp = t; |
---|
54 | t = v - q * t; |
---|
55 | v = tmp; |
---|
56 | end |
---|
57 | u; |
---|
58 | v = mod(v,52); |
---|
Note: See
TracBrowser
for help on using the repository browser.