(0 . 0)(1 . 26)
385 with Words; use Words;
386 with FZ_Type; use FZ_Type;
387
388
389 package FZ_Basic is
390
391 pragma Pure;
392
393 -- N := 0
394 procedure FZ_Clear(N : out FZ);
395
396 -- First word of N := Source
397 procedure FZ_Set_Head(N : out FZ; Source : in Word);
398
399 -- First word of N
400 function FZ_Get_Head(N : in FZ) return Word;
401
402 -- Exchange X and Y
403 procedure FZ_Swap(X : in out FZ; Y : in out FZ);
404 pragma Precondition(X'Length = Y'Length);
405
406 -- Constant-time MUX: Sel = 0: Result := X; Sel = 1: Result := Y
407 procedure FZ_Mux(X : in FZ; Y : in FZ; Result : out FZ; Sel : in WBool);
408 pragma Precondition(X'Length = Y'Length and X'Length = Result'Length);
409
410 end FZ_Basic;