1 /*
2    binop.h -- Macros for binary operations.
3 
4    Copyright (C) 1994-95  K. Scott Hunziker.
5    Copyright (C) 1990-94  The Boeing Company.
6 
7    See the file COPYING for license, warranty, and permission details.
8  */
9 
10 /* $Id: binop.h,v 1.1.1.1 1996/04/17 05:56:15 ksh Exp $ */
11 
12 #ifndef  BINOP_H
13 #define  BINOP_H	1
14 
15 #include "entity.h"
16 
17 enum
18   {
19     BO_ADD,
20     BO_SUB,
21     BO_MUL,
22     BO_PROD,
23     BO_DIV,
24     BO_APPEND,
25     BO_PILE,
26     BO_MOD,
27     BO_AND,
28     BO_OR,
29     BO_EQ,
30     BO_NE,
31     BO_LT,
32     BO_LTE,
33     BO_GT,
34     BO_GTE,
35     BO_POWER
36   };
37 
38 extern ENTITY *PROTO (binop_entity, (int op, ENTITY * l, ENTITY * r));
39 extern ENTITY *PROTO (binop_scalar_scalar, (int op, SCALAR * l, SCALAR * r));
40 extern ENTITY *PROTO (binop_scalar_vector, (int op, SCALAR * l, VECTOR * r));
41 extern ENTITY *PROTO (binop_scalar_matrix, (int op, SCALAR * l, MATRIX * r));
42 extern ENTITY *PROTO (binop_vector_scalar, (int op, VECTOR * l, SCALAR * r));
43 extern ENTITY *PROTO (binop_vector_vector, (int op, VECTOR * l, VECTOR * r));
44 extern ENTITY *PROTO (binop_vector_matrix, (int op, VECTOR * l, MATRIX * r));
45 extern ENTITY *PROTO (binop_matrix_scalar, (int op, MATRIX * l, SCALAR * r));
46 extern ENTITY *PROTO (binop_matrix_vector, (int op, MATRIX * l, VECTOR * r));
47 extern ENTITY *PROTO (binop_matrix_matrix, (int op, MATRIX * l, MATRIX * r));
48 extern ENTITY *PROTO (binop_table_table, (int op, TABLE * l, TABLE * r));
49 extern ENTITY *PROTO (binop_function_function,
50 		        (int op, FUNCTION * l, FUNCTION * r));
51 
52 extern ENTITY *PROTO (binop_scalar_integer,
53 		        (int op, SCALAR * l, SCALAR * r));
54 extern ENTITY *PROTO (binop_scalar_real,
55 		        (int op, SCALAR * l, SCALAR * r));
56 extern ENTITY *PROTO (binop_scalar_complex,
57 		        (int op, SCALAR * l, SCALAR * r));
58 extern ENTITY *PROTO (binop_scalar_character,
59 		        (int op, SCALAR * l, SCALAR * r));
60 
61 extern ENTITY *PROTO (binop_scalar_integer_character,
62 		        (int op, SCALAR * l, SCALAR * r));
63 extern ENTITY *PROTO (binop_scalar_real_character,
64 		        (int op, SCALAR * l, SCALAR * r));
65 extern ENTITY *PROTO (binop_scalar_complex_character,
66 		        (int op, SCALAR * l, SCALAR * r));
67 
68 extern ENTITY *PROTO (binop_scalar_vector_integer,
69 		        (int op, SCALAR * l, VECTOR * r));
70 extern ENTITY *PROTO (binop_scalar_vector_real,
71 		        (int op, SCALAR * l, VECTOR * r));
72 extern ENTITY *PROTO (binop_scalar_vector_complex,
73 		        (int op, SCALAR * l, VECTOR * r));
74 extern ENTITY *PROTO (binop_scalar_vector_character,
75 		        (int op, SCALAR * l, VECTOR * r));
76 extern ENTITY *PROTO (binop_scalar_vector_num_char,
77 		        (int op, SCALAR * l, VECTOR * r));
78 
79 extern ENTITY *PROTO (binop_scalar_matrix_integer,
80 		        (int op, SCALAR * l, MATRIX * r));
81 extern ENTITY *PROTO (binop_scalar_matrix_real,
82 		        (int op, SCALAR * l, MATRIX * r));
83 extern ENTITY *PROTO (binop_scalar_matrix_complex,
84 		        (int op, SCALAR * l, MATRIX * r));
85 extern ENTITY *PROTO (binop_scalar_matrix_character,
86 		        (int op, SCALAR * l, MATRIX * r));
87 extern ENTITY *PROTO (binop_scalar_matrix_num_char,
88 		        (int op, SCALAR * l, MATRIX * r));
89 
90 extern ENTITY *PROTO (binop_vector_integer,
91 		        (int op, VECTOR * l, VECTOR * r));
92 extern ENTITY *PROTO (binop_vector_real,
93 		        (int op, VECTOR * l, VECTOR * r));
94 extern ENTITY *PROTO (binop_vector_complex,
95 		        (int op, VECTOR * l, VECTOR * r));
96 extern ENTITY *PROTO (binop_vector_character,
97 		        (int op, VECTOR * l, VECTOR * r));
98 
99 extern ENTITY *PROTO (binop_vector_integer_character,
100 		        (int op, VECTOR * l, VECTOR * r));
101 extern ENTITY *PROTO (binop_vector_real_character,
102 		        (int op, VECTOR * l, VECTOR * r));
103 extern ENTITY *PROTO (binop_vector_complex_character,
104 		        (int op, VECTOR * l, VECTOR * r));
105 
106 extern ENTITY *PROTO (binop_vector_scalar_integer,
107 		        (int op, VECTOR * l, SCALAR * r));
108 extern ENTITY *PROTO (binop_vector_scalar_real,
109 		        (int op, VECTOR * l, SCALAR * r));
110 extern ENTITY *PROTO (binop_vector_scalar_complex,
111 		        (int op, VECTOR * l, SCALAR * r));
112 extern ENTITY *PROTO (binop_vector_scalar_character,
113 		        (int op, VECTOR * l, SCALAR * r));
114 extern ENTITY *PROTO (binop_vector_scalar_num_char,
115 		        (int op, VECTOR * l, SCALAR * r));
116 
117 extern ENTITY *PROTO (binop_vector_matrix_integer,
118 		        (int op, VECTOR * l, MATRIX * r));
119 extern ENTITY *PROTO (binop_vector_matrix_real,
120 		        (int op, VECTOR * l, MATRIX * r));
121 extern ENTITY *PROTO (binop_vector_matrix_complex,
122 		        (int op, VECTOR * l, MATRIX * r));
123 extern ENTITY *PROTO (binop_vector_matrix_character,
124 		        (int op, VECTOR * l, MATRIX * r));
125 extern ENTITY *PROTO (binop_vector_matrix_num_char,
126 		        (int op, VECTOR * l, MATRIX * r));
127 extern ENTITY *PROTO (binop_vector_matrix_char_num,
128 		        (int op, VECTOR * l, MATRIX * r));
129 
130 extern ENTITY *PROTO (binop_matrix_integer,
131 		        (int op, MATRIX * l, MATRIX * r));
132 extern ENTITY *PROTO (binop_matrix_real,
133 		        (int op, MATRIX * l, MATRIX * r));
134 extern ENTITY *PROTO (binop_matrix_complex,
135 		        (int op, MATRIX * l, MATRIX * r));
136 extern ENTITY *PROTO (binop_matrix_character,
137 		        (int op, MATRIX * l, MATRIX * r));
138 extern ENTITY *PROTO (binop_matrix_num_char,
139 		        (int op, MATRIX * l, MATRIX * r));
140 
141 extern ENTITY *PROTO (binop_matrix_scalar_integer,
142 		        (int op, MATRIX * l, SCALAR * r));
143 extern ENTITY *PROTO (binop_matrix_scalar_real,
144 		        (int op, MATRIX * l, SCALAR * r));
145 extern ENTITY *PROTO (binop_matrix_scalar_complex,
146 		        (int op, MATRIX * l, SCALAR * r));
147 extern ENTITY *PROTO (binop_matrix_scalar_character,
148 		        (int op, MATRIX * l, SCALAR * r));
149 extern ENTITY *PROTO (binop_matrix_scalar_num_char,
150 		        (int op, MATRIX * l, SCALAR * r));
151 
152 extern ENTITY *PROTO (binop_matrix_vector_integer,
153 		        (int op, MATRIX * l, VECTOR * r));
154 extern ENTITY *PROTO (binop_matrix_vector_real,
155 		        (int op, MATRIX * l, VECTOR * r));
156 extern ENTITY *PROTO (binop_matrix_vector_complex,
157 		        (int op, MATRIX * l, VECTOR * r));
158 extern ENTITY *PROTO (binop_matrix_vector_character,
159 		        (int op, MATRIX * l, VECTOR * r));
160 extern ENTITY *PROTO (binop_matrix_vector_num_char,
161 		        (int op, MATRIX * l, VECTOR * r));
162 extern ENTITY *PROTO (binop_matrix_vector_char_num,
163 		        (int op, MATRIX * l, VECTOR * r));
164 
165 #endif /* BINOP_H */
166