Annotation of 43BSD/contrib/icon/book/f/complex.icn, revision 1.1.1.1

1.1       root        1: record complex(rpart,ipart)
                      2: 
                      3: procedure strcpx(s)
                      4:    i := upto('+-',s,2)
                      5:    return complex(+s[1:i],+s[i:-1])
                      6: end
                      7: 
                      8: procedure cpxstr(x)
                      9:    if x.ipart < 0 then return x.rpart || x.ipart || "i"
                     10:    else return x.rpart || "+" || x.ipart || "i"
                     11: end
                     12: 
                     13: procedure cpxadd(x1,x2)
                     14:    return complex(x1.rpart + x2.rpart,x1.ipart + x2.ipart)
                     15: end
                     16: 
                     17: procedure cpxsub(x1,x2)
                     18:    return complex(x1.rpart - x2.rpart,x1.ipart - x2.ipart)
                     19: end
                     20: 
                     21: procedure cpxmul(x1,x2)
                     22:    return complex(x1.rpart * x2.rpart - x1.ipart * x2.ipart,
                     23:       x1.rpart * x2.ipart + x1.ipart * x2.rpart)
                     24: end
                     25: 
                     26: procedure cpxdiv(x1,x2)
                     27:    denom := x2.rpart ^ 2 + x2.ipart ^ 2
                     28:    return complex((x1.rpart * x2.rpart + x1.ipart * x2.ipart) /
                     29:       denom,(x1.ipart * x2.rpart - x1.rpart * x2.ipart) /
                     30:       denom)
                     31: end

unix.superglobalmegacorp.com

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