home *** CD-ROM | disk | FTP | other *** search
-
- *COMPUTE DOT PRODUCTS
- *A IS A DATA ARRAY
- *B IS A DATA ARRAY
- *L IS DIMENSION OF A AND B
- *AC IS SET TO:
- * A[0]*B[0]+A[1]*B[1]+ ... +A[L-1]*B[L-1]
-
- DOTP $MACRO A,B,L
- $VAR ST
- $ASG '*' TO ST.S
- $IF A.SV#=ST.SV
- $IF B.SV#=ST.SV
- CALL DOT$ SUM OF
- REF DOT$
- DATA :A: :A:
- DATA :B: :B:
- DATA :L: DIM :L:
- $ELSE
- CALL DOT$1 SUM OF
- REF DOT$1
- DATA :A: :A:
- DATA :L: DIM :L:
- $ENDIF
- $ELSE
- $IF B.SV#=ST.SV
- CALL DOT$0 SUM OF
- REF DOT$0
- DATA :B: :B:
- DATA :L: DIM :L:
- $ELSE
- CALL DOT$01 SUM OF
- REF DOT$01
- DATA :L: DIM :L:
- $ENDIF
- $END