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