Home > machine > Soleil > common > synchro > bucketnumber.m

bucketnumber

PURPOSE ^

BUCKETNUMBER - Computes n1 n2 for timing system master board for a bucket

SYNOPSIS ^

function [n1 n2] = bucketnumber(num)

DESCRIPTION ^

BUCKETNUMBER - Computes n1 n2 for timing system master board for a bucket
number.

  INPUTS
  1. num - Bucket number

  OUPUTS
  1. n1 - number of step for extraction table
  2. n2 - number of step for linac table

  ALGORITHM
 Table extraction n1 entier compris entre 0 et 51
 Table Linac n2 entier compris entre 0 et 7
 n1 = 0; n2 = 0; injection dans paquet 1 de l'anneau
 n1 = 0; n2 = 1; injection dans paquet 2 de l'anneau

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function [n1 n2] = bucketnumber(num)
0002 %BUCKETNUMBER - Computes n1 n2 for timing system master board for a bucket
0003 %number.
0004 %
0005 %  INPUTS
0006 %  1. num - Bucket number
0007 %
0008 %  OUPUTS
0009 %  1. n1 - number of step for extraction table
0010 %  2. n2 - number of step for linac table
0011 %
0012 %  ALGORITHM
0013 % Table extraction n1 entier compris entre 0 et 51
0014 % Table Linac n2 entier compris entre 0 et 7
0015 % n1 = 0; n2 = 0; injection dans paquet 1 de l'anneau
0016 % n1 = 0; n2 = 1; injection dans paquet 2 de l'anneau
0017 
0018 %
0019 %  Written by Laurent S. Nadolski
0020 
0021 num = num - 1;
0022 n2 = mod(num,8);
0023 d = fix(num/8);
0024 [u v] = bezout(52,23,d);
0025 n1 = v;
0026 
0027 %fprintf('n1 = %d n2 = %d\n', n1, n2)
0028 %fprintf('Injection dans paquet numero %d\n', mod(n1*184,416) + n2 + 1)
0029 
0030 %%%%
0031 
0032 function [u v] = bezout(a,b,c)
0033 % Resolution de 52 u + 23 v = c
0034 %        ou  encore 416 u + 184 v = 8*c
0035 %        ou  encore de 184 v = 8*c modulo 416
0036 %  Soit travail dans l'ensemble quotient Z/416Z
0037 
0038 % ALGORITHME de BEZOUT
0039 
0040 a = 52;
0041 b = 23;
0042 
0043 u = 1;
0044 v = 0;
0045 
0046 s = 0;
0047 t = c;
0048 while b > 0 
0049     q = fix(a/b);r = rem(a,b);
0050     a = b; b = r;
0051     tmp = s;
0052     s = u - q * s;
0053     u = tmp; tmp = t;
0054     t = v - q * t;
0055     v = tmp;
0056 end
0057 u;
0058 v = mod(v,52);

Generated on Mon 21-May-2007 15:35:27 by m2html © 2003