@@ -167,3 +167,141 @@ void tensor_less_equal(zval * return_value, zval * a, zval * b)
167
167
168
168
RETVAL_ARR (Z_ARR (c ));
169
169
}
170
+
171
+ void tensor_equal_scalar (zval * return_value , zval * a , zval * b )
172
+ {
173
+ zval * valueA ;
174
+ zval comparison ;
175
+ zval c ;
176
+
177
+ zend_array * aHat = Z_ARR_P (a );
178
+
179
+ array_init_size (& c , zend_array_count (aHat ));
180
+
181
+ ZEND_HASH_FOREACH_VAL (aHat , valueA ) {
182
+ if (ZEPHIR_IS_EQUAL (valueA , b )) {
183
+ ZVAL_LONG (& comparison , 1 );
184
+ } else {
185
+ ZVAL_LONG (& comparison , 0 );
186
+ }
187
+
188
+ add_next_index_zval (& c , & comparison );
189
+ } ZEND_HASH_FOREACH_END ();
190
+
191
+ RETVAL_ARR (Z_ARR (c ));
192
+ }
193
+
194
+ void tensor_not_equal_scalar (zval * return_value , zval * a , zval * b )
195
+ {
196
+ zval * valueA ;
197
+ zval comparison ;
198
+ zval c ;
199
+
200
+ zend_array * aHat = Z_ARR_P (a );
201
+
202
+ array_init_size (& c , zend_array_count (aHat ));
203
+
204
+ ZEND_HASH_FOREACH_VAL (aHat , valueA ) {
205
+ if (ZEPHIR_IS_EQUAL (valueA , b )) {
206
+ ZVAL_LONG (& comparison , 0 );
207
+ } else {
208
+ ZVAL_LONG (& comparison , 1 );
209
+ }
210
+
211
+ add_next_index_zval (& c , & comparison );
212
+ } ZEND_HASH_FOREACH_END ();
213
+
214
+ RETVAL_ARR (Z_ARR (c ));
215
+ }
216
+
217
+ void tensor_greater_scalar (zval * return_value , zval * a , zval * b )
218
+ {
219
+ zval * valueA ;
220
+ zval comparison ;
221
+ zval c ;
222
+
223
+ zend_array * aHat = Z_ARR_P (a );
224
+
225
+ array_init_size (& c , zend_array_count (aHat ));
226
+
227
+ ZEND_HASH_FOREACH_VAL (aHat , valueA ) {
228
+ if (ZEPHIR_GT (valueA , b )) {
229
+ ZVAL_LONG (& comparison , 1 );
230
+ } else {
231
+ ZVAL_LONG (& comparison , 0 );
232
+ }
233
+
234
+ add_next_index_zval (& c , & comparison );
235
+ } ZEND_HASH_FOREACH_END ();
236
+
237
+ RETVAL_ARR (Z_ARR (c ));
238
+ }
239
+
240
+ void tensor_greater_equal_scalar (zval * return_value , zval * a , zval * b )
241
+ {
242
+ zval * valueA ;
243
+ zval comparison ;
244
+ zval c ;
245
+
246
+ zend_array * aHat = Z_ARR_P (a );
247
+
248
+ array_init_size (& c , zend_array_count (aHat ));
249
+
250
+ ZEND_HASH_FOREACH_VAL (aHat , valueA ) {
251
+ if (ZEPHIR_GE (valueA , b )) {
252
+ ZVAL_LONG (& comparison , 1 );
253
+ } else {
254
+ ZVAL_LONG (& comparison , 0 );
255
+ }
256
+
257
+ add_next_index_zval (& c , & comparison );
258
+ } ZEND_HASH_FOREACH_END ();
259
+
260
+ RETVAL_ARR (Z_ARR (c ));
261
+ }
262
+
263
+ void tensor_less_scalar (zval * return_value , zval * a , zval * b )
264
+ {
265
+ zval * valueA ;
266
+ zval comparison ;
267
+ zval c ;
268
+
269
+ zend_array * aHat = Z_ARR_P (a );
270
+
271
+ array_init_size (& c , zend_array_count (aHat ));
272
+
273
+ ZEND_HASH_FOREACH_VAL (aHat , valueA ) {
274
+ if (ZEPHIR_LT (valueA , b )) {
275
+ ZVAL_LONG (& comparison , 1 );
276
+ } else {
277
+ ZVAL_LONG (& comparison , 0 );
278
+ }
279
+
280
+ add_next_index_zval (& c , & comparison );
281
+ } ZEND_HASH_FOREACH_END ();
282
+
283
+ RETVAL_ARR (Z_ARR (c ));
284
+ }
285
+
286
+ void tensor_less_equal_scalar (zval * return_value , zval * a , zval * b )
287
+ {
288
+ zval * valueA ;
289
+ zval comparison ;
290
+ zval c ;
291
+
292
+ zend_array * aHat = Z_ARR_P (a );
293
+
294
+ array_init_size (& c , zend_array_count (aHat ));
295
+
296
+ ZEND_HASH_FOREACH_VAL (aHat , valueA ) {
297
+ if (ZEPHIR_LE (valueA , b )) {
298
+ ZVAL_LONG (& comparison , 1 );
299
+ } else {
300
+ ZVAL_LONG (& comparison , 0 );
301
+ }
302
+
303
+ add_next_index_zval (& c , & comparison );
304
+ } ZEND_HASH_FOREACH_END ();
305
+
306
+ RETVAL_ARR (Z_ARR (c ));
307
+ }
0 commit comments