-
Notifications
You must be signed in to change notification settings - Fork 1
/
LBRIHI.c
40 lines (34 loc) · 823 Bytes
/
LBRIHI.c
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
/*========================================================================
LBRIHI(I; J,t)
Logarithmic binary rational interval to hardware interval.
Input
I : a logarithmic binary rational interval.
Outputs
J : the smallest hardware interval containing I.
t : If t = 0, the program failed and J is undefined. Otherwise t = 1.
=========================================================================*/
#include "saclib.h"
void LBRIHI(I,J_,t_)
Word I;
interval *J_;
BDigit *t_;
{
Word a,b;
ieee ap,bp;
interval J;
BDigit t;
Step1: /* Convert endpoints and make interval. */
FIRST2(I,&a,&b);
LBRNIEEE(a,-1,&ap,&t);
if (t == 0)
goto Return;
LBRNIEEE(b,+1,&bp,&t);
if (t == 0)
goto Return;
J.left = ap.num;
J.right = bp.num;
Return: /* Return J and t. */
*J_ = J;
*t_ = t;
return;
}