Annotation of 42BSD/usr.lib/lib.b, revision 1.1

1.1     ! root        1: /*     lib.b   4.1     83/04/02        */
        !             2: 
        !             3: scale = 20
        !             4: define e(x){
        !             5:        auto a, b, c, d, e, g, w, y
        !             6: 
        !             7:        t = scale
        !             8:        scale = t + .434*x + 1
        !             9: 
        !            10:        w = 0
        !            11:        if(x<0){
        !            12:                x = -x
        !            13:                w = 1
        !            14:        }
        !            15:        y = 0
        !            16:        while(x>2){
        !            17:                x = x/2
        !            18:                y = y + 1
        !            19:        }
        !            20: 
        !            21:        a=1
        !            22:        b=1
        !            23:        c=b
        !            24:        d=1
        !            25:        e=1
        !            26:        for(a=1;1==1;a++){
        !            27:                b=b*x
        !            28:                c=c*a+b
        !            29:                d=d*a
        !            30:                g = c/d
        !            31:                if(g == e){
        !            32:                        g = g/1
        !            33:                        while(y--){
        !            34:                                g = g*g
        !            35:                        }
        !            36:                        scale = t
        !            37:                        if(w==1) return(1/g)
        !            38:                        return(g/1)
        !            39:                }
        !            40:                e=g
        !            41:        }
        !            42: }
        !            43: 
        !            44: define l(x){
        !            45:        auto a, b, c, d, e, f, g, u, s, t
        !            46:        if(x <=0) return(1-10^scale)
        !            47:        t = scale
        !            48: 
        !            49:        f=1
        !            50:        scale = scale + scale(x) - length(x) + 1
        !            51:        s=scale
        !            52:        while(x > 2){
        !            53:                s = s + (length(x)-scale(x))/2 + 1
        !            54:                if(s>0) scale = s
        !            55:                x = sqrt(x)
        !            56:                f=f*2
        !            57:        }
        !            58:        while(x < .5){
        !            59:                s = s + (length(x)-scale(x))/2 + 1
        !            60:                if(s>0) scale = s
        !            61:                x = sqrt(x)
        !            62:                f=f*2
        !            63:        }
        !            64: 
        !            65:        scale = t + length(f) - scale(f) + 1
        !            66:        u = (x-1)/(x+1)
        !            67: 
        !            68:        scale = scale + 1.1*length(t) - 1.1*scale(t)
        !            69:        s = u*u
        !            70:        b = 2*f
        !            71:        c = b
        !            72:        d = 1
        !            73:        e = 1
        !            74:        for(a=3;1==1;a=a+2){
        !            75:                b=b*s
        !            76:                c=c*a+d*b
        !            77:                d=d*a
        !            78:                g=c/d
        !            79:                if(g==e){
        !            80:                        scale = t
        !            81:                        return(u*c/d)
        !            82:                }
        !            83:                e=g
        !            84:        }
        !            85: }
        !            86: 
        !            87: define s(x){
        !            88:        auto a, b, c, s, t, y, p, n, i
        !            89:        t = scale
        !            90:        y = x/.7853
        !            91:        s = t + length(y) - scale(y)
        !            92:        if(s<t) s=t
        !            93:        scale = s
        !            94:        p = a(1)
        !            95: 
        !            96:        scale = 0
        !            97:        if(x>=0) n = (x/(2*p)+1)/2
        !            98:        if(x<0) n = (x/(2*p)-1)/2
        !            99:        x = x - 4*n*p
        !           100:        if(n%2!=0) x = -x
        !           101: 
        !           102:        scale = t + length(1.2*t) - scale(1.2*t)
        !           103:        y = -x*x
        !           104:        a = x
        !           105:        b = 1
        !           106:        s = x
        !           107:        for(i=3; 1==1; i=i+2){
        !           108:                a = a*y
        !           109:                b = b*i*(i-1)
        !           110:                c = a/b
        !           111:                if(c==0){scale=t; return(s/1)}
        !           112:                s = s+c
        !           113:        }
        !           114: }
        !           115: 
        !           116: define c(x){
        !           117:        auto t
        !           118:        t = scale
        !           119:        scale = scale+1
        !           120:        x = s(x+2*a(1))
        !           121:        scale = t
        !           122:        return(x/1)
        !           123: }
        !           124: 
        !           125: define a(x){
        !           126:        auto a, b, c, d, e, f, g, s, t
        !           127:        if(x==0) return(0)
        !           128:        if(x==1)
        !           129:                if(scale<52)
        !           130: return(.7853981633974483096156608458198757210492923498437764/1)
        !           131:        t = scale
        !           132:        f=1
        !           133:        while(x > .5){
        !           134:                scale = scale + 1
        !           135:                x= -(1-sqrt(1.+x*x))/x
        !           136:                f=f*2
        !           137:        }
        !           138:        while(x < -.5){
        !           139:                scale = scale + 1
        !           140:                x = -(1-sqrt(1.+x*x))/x
        !           141:                f=f*2
        !           142:        }
        !           143:        s = -x*x
        !           144:        b = f
        !           145:        c = f
        !           146:        d = 1
        !           147:        e = 1
        !           148:        for(a=3;1==1;a=a+2){
        !           149:                b=b*s
        !           150:                c=c*a+d*b
        !           151:                d=d*a
        !           152:                g=c/d
        !           153:                if(g==e){
        !           154:                        scale = t
        !           155:                        return(x*c/d)
        !           156:                }
        !           157:                e=g
        !           158:        }
        !           159: }
        !           160: 
        !           161: define j(n,x){
        !           162: auto a,b,c,d,e,g,i,s,k,t
        !           163: 
        !           164:        t = scale
        !           165:        k = 1.36*x + 1.16*t - n
        !           166:        k = length(k) - scale(k)
        !           167:        if(k>0) scale = scale + k
        !           168: 
        !           169: s= -x*x/4
        !           170: if(n<0){
        !           171:        n= -n
        !           172:        x= -x
        !           173:        }
        !           174: a=1
        !           175: c=1
        !           176: for(i=1;i<=n;i++){
        !           177:        a=a*x
        !           178:        c = c*2*i
        !           179:        }
        !           180: b=a
        !           181: d=1
        !           182: e=1
        !           183: for(i=1;1;i++){
        !           184:        a=a*s
        !           185:        b=b*i*(n+i) + a
        !           186:        c=c*i*(n+i)
        !           187:        g=b/c
        !           188:        if(g==e){
        !           189:                scale = t
        !           190:                return(g/1)
        !           191:                }
        !           192:        e=g
        !           193:        }
        !           194: }

unix.superglobalmegacorp.com

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