Annotation of researchv9/jerq/src/lib/j/drek/arith.oc, revision 1.1

1.1     ! root        1: #include <jerq.h>
        !             2: 
        !             3: Point
        !             4: add(a, b)
        !             5:        Point a, b;
        !             6: {
        !             7:        register Point *ap= &a, *bp= &b;
        !             8:        ap->x+=bp->x;
        !             9:        ap->y+=bp->y;
        !            10:        return(*ap);
        !            11: }
        !            12: 
        !            13: Point
        !            14: sub(a, b)
        !            15:        Point a, b;
        !            16: {
        !            17:        register Point *ap= &a, *bp= &b;
        !            18:        ap->x-=bp->x;
        !            19:        ap->y-=bp->y;
        !            20:        return(*ap);
        !            21: }
        !            22: 
        !            23: Rectangle
        !            24: inset(r,n)
        !            25:        Rectangle r;
        !            26: {
        !            27:        r.origin = add(r.origin,Pt(n,n));
        !            28:        r.corner = sub(r.corner,Pt(n,n));
        !            29:        return(r);
        !            30: }
        !            31: 
        !            32: Point
        !            33: div(a, b)
        !            34:        Point a;
        !            35:        register b;
        !            36: {
        !            37:        register Point *ap= &a;
        !            38:        ap->x/=b;
        !            39:        ap->y/=b;
        !            40:        return(*ap);
        !            41: }
        !            42: 
        !            43: Point
        !            44: mul(a, b)
        !            45:        Point a;
        !            46:        register b;
        !            47: {
        !            48:        register Point *ap= &a;
        !            49:        ap->x*=b;
        !            50:        ap->y*=b;
        !            51:        return(*ap);
        !            52: }
        !            53: 
        !            54: Rectangle
        !            55: rsubp(r, p)
        !            56:        Rectangle r;
        !            57:        Point p;
        !            58: {
        !            59:        register Rectangle *rp= &r;
        !            60:        register Point *pp= &p;
        !            61:        rp->origin.x-=pp->x;
        !            62:        rp->origin.y-=pp->y;
        !            63:        rp->corner.x-=pp->x;
        !            64:        rp->corner.y-=pp->y;
        !            65:        return(*rp);
        !            66: }
        !            67: Rectangle
        !            68: raddp(r, p)
        !            69:        Rectangle r;
        !            70:        Point p;
        !            71: {
        !            72:        register Rectangle *rp= &r;
        !            73:        register Point *pp= &p;
        !            74:        rp->origin.x+=pp->x;
        !            75:        rp->origin.y+=pp->y;
        !            76:        rp->corner.x+=pp->x;
        !            77:        rp->corner.y+=pp->y;
        !            78:        return(*rp);
        !            79: }
        !            80: 
        !            81: eqpt(p, q)
        !            82:        Point p, q;
        !            83: {
        !            84:        return(p.x==q.x && p.y==q.y);
        !            85: }
        !            86: 
        !            87: eqrect(r, s)
        !            88:        Rectangle r, s;
        !            89: {
        !            90: #define o origin
        !            91: #define c corner
        !            92:        return(r.o.x==s.o.x && r.o.y==s.o.y && r.c.x==s.c.x && r.c.y==s.c.y);
        !            93: }

unix.superglobalmegacorp.com

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