Annotation of 43BSD/contrib/icon/src/lib/complex.icn, revision 1.1.1.1

1.1       root        1: #      COMPLEX(2)
                      2: #
                      3: #      Complex arithmetic
                      4: #
                      5: #      Ralph E. Griswold
                      6: #
                      7: #      Last modified 7/27/83
                      8: #
                      9: 
                     10: record complex(rpart,ipart)
                     11: 
                     12: procedure strcpx(s)
                     13:    i := upto('+-',s,2)
                     14:    return complex(+s[1:i],+s[i:-1])
                     15: end
                     16: 
                     17: procedure cpxstr(x)
                     18:    if x.ipart < 0 then return x.rpart || x.ipart || "i"
                     19:    else return x.rpart || "+" || x.ipart || "i"
                     20: end
                     21: 
                     22: procedure cpxadd(x1,x2)
                     23:    return complex(x1.rpart + x2.rpart,x1.ipart + x2.ipart)
                     24: end
                     25: 
                     26: procedure cpxsub(x1,x2)
                     27:    return complex(x1.rpart - x2.rpart,x1.ipart - x2.ipart)
                     28: end
                     29: 
                     30: procedure cpxmul(x1,x2)
                     31:    return complex(x1.rpart * x2.rpart - x1.ipart * x2.ipart,
                     32:       x1.rpart * x2.ipart + x1.ipart * x2.rpart)
                     33: end
                     34: 
                     35: procedure cpxdiv(x1,x2)
                     36:    denom := x2.rpart ^ 2 + x2.ipart ^ 2
                     37:    return complex((x1.rpart * x2.rpart + x1.ipart * x2.ipart) /
                     38:       denom,(x1.ipart * x2.rpart - x1.rpart * x2.ipart) /
                     39:       denom)
                     40: end

unix.superglobalmegacorp.com

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