Annotation of researchv10no/cmd/PDP11/fpp/rhflib1.c, revision 1.1.1.1

1.1       root        1: /* floating point utility operations for software-float */
                      2: 
                      3: extern float _fsign; /* 0100000L for norgen, 020000000000L for unix */
                      4: extern long _fsign2; /* same constant, different type */
                      5: extern float _one; /* the constant 1.0 */
                      6: long _funmin(f)
                      7: long f;
                      8: {
                      9: if(f)return(f^_fsign2); else return(0L);
                     10: }
                     11: 
                     12: float _funplus(f)
                     13: float f;
                     14: {
                     15: return(f);
                     16: }
                     17: 
                     18: float _finc1(pf)
                     19: float *pf;
                     20: {
                     21: return(*pf= *pf+_one);
                     22: }
                     23: 
                     24: float _fdec1(pf)
                     25: float *pf;
                     26: {
                     27: return(*pf= *pf-_one);
                     28: }
                     29: 
                     30: float _finc2(pf)
                     31: float *pf;
                     32: {
                     33: float temp;
                     34: temp= *pf;
                     35: *pf= *pf+_one;
                     36: return(temp);
                     37: }
                     38: 
                     39: float _fdec2(pf)
                     40: float *pf;
                     41: {
                     42: float temp;
                     43: temp= *pf;
                     44: *pf = *pf-_one;
                     45: return(temp);
                     46: }
                     47: 
                     48: float _fmod(b,a)
                     49: float b,a;
                     50: {
                     51: return(a-((long)(a/b))*b);
                     52: }
                     53: 
                     54: float _feqpl(b,pa)
                     55: float b,*pa;
                     56: {
                     57: return(*pa= *pa+b);
                     58: }
                     59: 
                     60: float _feqmi(b,pa)
                     61: float b,*pa;
                     62: {
                     63: return(*pa= *pa-b);
                     64: }
                     65: 
                     66: float _feqmu(b,pa)
                     67: float b,*pa;
                     68: {
                     69: return(*pa= *pa*b);
                     70: }
                     71: 
                     72: float _feqdv(b,pa)
                     73: float b,*pa;
                     74: {
                     75: return(*pa= *pa/b);
                     76: }
                     77: 
                     78: float _feqan(b,pa)
                     79: float b,*pa;
                     80: {
                     81: return(*pa= *pa&b);
                     82: }
                     83: 
                     84: float _feqer(b,pa)
                     85: float b,*pa;
                     86: {
                     87: return(*pa= *pa^b);
                     88: }
                     89: 
                     90: float _feqmo(b,pa)
                     91: float b,*pa;
                     92: {
                     93: return(*pa= *pa%b);
                     94: }
                     95: 
                     96: float _feqor(b,pa)
                     97: float b,*pa;
                     98: {
                     99: return(*pa= *pa|b);
                    100: }
                    101: 
                    102: float _feqsr(b,pa)
                    103: float b,*pa;
                    104: {
                    105: return(*pa= *pa>>b);
                    106: }
                    107: 
                    108: float _feqsl(b,pa)
                    109: float b,*pa;
                    110: {
                    111: return(*pa= *pa<<b);
                    112: }
                    113: 
                    114: int _fgt(b,a)
                    115: float b,a;
                    116: {
                    117: float temp;
                    118: if(temp=a-b)return((temp&_fsign)==0.0);
                    119: return(0);
                    120: }
                    121: 
                    122: int _fge(b,a)
                    123: float b,a;
                    124: {
                    125: return(((a-b)&_fsign)==0.0);
                    126: }
                    127: 
                    128: int _fle(b,a)
                    129: float b,a;
                    130: {
                    131: float temp;
                    132: if(temp=a-b)return((temp&_fsign)==_fsign);
                    133: return(1);
                    134: }
                    135: int _flt(b,a)
                    136: float b,a;
                    137: {
                    138: return(((a-b)&_fsign)==_fsign);
                    139: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.