Mercurial > octave-nkf
comparison src/OPERATORS/op-int.h @ 7789:82be108cc558
First attempt at single precision tyeps
* * *
corrections to qrupdate single precision routines
* * *
prefer demotion to single over promotion to double
* * *
Add single precision support to log2 function
* * *
Trivial PROJECT file update
* * *
Cache optimized hermitian/transpose methods
* * *
Add tests for tranpose/hermitian and ChangeLog entry for new transpose code
author | David Bateman <dbateman@free.fr> |
---|---|
date | Sun, 27 Apr 2008 22:34:17 +0200 |
parents | 43e3efb2cbc2 |
children | e998e81224b5 |
comparison
equal
deleted
inserted
replaced
7788:45f5faba05a2 | 7789:82be108cc558 |
---|---|
55 #define OCTAVE_INSTALL_INT_DOUBLE_CONCAT_FN(TYPE) \ | 55 #define OCTAVE_INSTALL_INT_DOUBLE_CONCAT_FN(TYPE) \ |
56 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_scalar, TYPE ## _ ## double ## _s_s) \ | 56 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_scalar, TYPE ## _ ## double ## _s_s) \ |
57 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_matrix, TYPE ## _ ## double ## _s_m) \ | 57 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_matrix, TYPE ## _ ## double ## _s_m) \ |
58 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_scalar, TYPE ## _ ## double ## _m_s) \ | 58 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_scalar, TYPE ## _ ## double ## _m_s) \ |
59 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_matrix, TYPE ## _ ## double ## _m_m) | 59 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_matrix, TYPE ## _ ## double ## _m_m) |
60 | |
61 #define OCTAVE_FLOAT_INT_CONCAT_FN(TYPE) \ | |
62 DEFNDCATOP_FN2 (float ## _ ## TYPE ## _s_s, float_scalar, TYPE ## _scalar, TYPE ## NDArray, , float_array, TYPE ## _array, concat) \ | |
63 DEFNDCATOP_FN2 (float ## _ ## TYPE ## _s_m, float_scalar, TYPE ## _matrix, TYPE ## NDArray, , float_array, TYPE ## _array, concat) \ | |
64 DEFNDCATOP_FN2 (float ## _ ## TYPE ## _m_s, float_matrix, TYPE ## _scalar, TYPE ## NDArray, , float_array, TYPE ## _array, concat) \ | |
65 DEFNDCATOP_FN2 (float ## _ ## TYPE ## _m_m, float_matrix, TYPE ## _matrix, TYPE ## NDArray, , float_array, TYPE ## _array, concat) | |
66 | |
67 #define OCTAVE_INSTALL_FLOAT_INT_CONCAT_FN(TYPE) \ | |
68 INSTALL_CATOP (octave_float_scalar, octave_ ## TYPE ## _scalar, float ## _ ## TYPE ## _s_s) \ | |
69 INSTALL_CATOP (octave_float_scalar, octave_ ## TYPE ## _matrix, float ## _ ## TYPE ## _s_m) \ | |
70 INSTALL_CATOP (octave_float_matrix, octave_ ## TYPE ## _scalar, float ## _ ## TYPE ## _m_s) \ | |
71 INSTALL_CATOP (octave_float_matrix, octave_ ## TYPE ## _matrix, float ## _ ## TYPE ## _m_m) | |
72 | |
73 #define OCTAVE_INT_FLOAT_CONCAT_FN(TYPE) \ | |
74 DEFNDCATOP_FN2 (TYPE ## _ ## float ## _s_s, TYPE ## _scalar, float_scalar, , TYPE ## NDArray, TYPE ## _array, float_array, concat) \ | |
75 DEFNDCATOP_FN2 (TYPE ## _ ## float ## _s_m, TYPE ## _scalar, float_matrix, , TYPE ## NDArray, TYPE ## _array, float_array, concat) \ | |
76 DEFNDCATOP_FN2 (TYPE ## _ ## float ## _m_s, TYPE ## _matrix, float_scalar, , TYPE ## NDArray, TYPE ## _array, float_array, concat) \ | |
77 DEFNDCATOP_FN2 (TYPE ## _ ## float ## _m_m, TYPE ## _matrix, float_matrix, , TYPE ## NDArray, TYPE ## _array, float_array, concat) | |
78 | |
79 #define OCTAVE_INSTALL_INT_FLOAT_CONCAT_FN(TYPE) \ | |
80 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_float_scalar, TYPE ## _ ## float ## _s_s) \ | |
81 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_float_matrix, TYPE ## _ ## float ## _s_m) \ | |
82 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_float_scalar, TYPE ## _ ## float ## _m_s) \ | |
83 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_float_matrix, TYPE ## _ ## float ## _m_m) | |
60 | 84 |
61 // For compatibility, concatenation with a character always returns a | 85 // For compatibility, concatenation with a character always returns a |
62 // character. | 86 // character. |
63 | 87 |
64 #define OCTAVE_CHAR_INT_CONCAT_FN(TYPE) \ | 88 #define OCTAVE_CHAR_INT_CONCAT_FN(TYPE) \ |
196 \ | 220 \ |
197 octave_value \ | 221 octave_value \ |
198 xpow (double a, const octave_ ## T1& b) \ | 222 xpow (double a, const octave_ ## T1& b) \ |
199 { \ | 223 { \ |
200 return pow (a, b); \ | 224 return pow (a, b); \ |
225 } \ | |
226 \ | |
227 octave_value \ | |
228 xpow (const octave_ ## T1& a, float b) \ | |
229 { \ | |
230 return pow (a, b); \ | |
231 } \ | |
232 \ | |
233 octave_value \ | |
234 xpow (float a, const octave_ ## T1& b) \ | |
235 { \ | |
236 return pow (a, b); \ | |
201 } | 237 } |
202 | 238 |
203 #define OCTAVE_SS_INT_OPS(TYPE) \ | 239 #define OCTAVE_SS_INT_OPS(TYPE) \ |
204 OCTAVE_S_INT_UNOPS (TYPE) \ | 240 OCTAVE_S_INT_UNOPS (TYPE) \ |
205 OCTAVE_SS_POW_OPS (TYPE, TYPE) \ | 241 OCTAVE_SS_POW_OPS (TYPE, TYPE) \ |
206 OCTAVE_SS_INT_ARITH_OPS (ss, TYPE ## _, TYPE ## _) \ | 242 OCTAVE_SS_INT_ARITH_OPS (ss, TYPE ## _, TYPE ## _) \ |
207 OCTAVE_SS_INT_ARITH_OPS (ssx, TYPE ## _, ) \ | 243 OCTAVE_SS_INT_ARITH_OPS (ssx, TYPE ## _, ) \ |
208 OCTAVE_SS_INT_ARITH_OPS (sxs, , TYPE ## _) \ | 244 OCTAVE_SS_INT_ARITH_OPS (sxs, , TYPE ## _) \ |
245 OCTAVE_SS_INT_ARITH_OPS (ssfx, TYPE ## _, float_) \ | |
246 OCTAVE_SS_INT_ARITH_OPS (sfxs, float_, TYPE ## _) \ | |
209 OCTAVE_SS_INT_CMP_OPS (ss, TYPE ## _, TYPE ## _) \ | 247 OCTAVE_SS_INT_CMP_OPS (ss, TYPE ## _, TYPE ## _) \ |
210 OCTAVE_SS_INT_CMP_OPS (sx, TYPE ## _, ) \ | 248 OCTAVE_SS_INT_CMP_OPS (sx, TYPE ## _, ) \ |
211 OCTAVE_SS_INT_CMP_OPS (xs, , TYPE ## _) \ | 249 OCTAVE_SS_INT_CMP_OPS (xs, , TYPE ## _) \ |
250 OCTAVE_SS_INT_CMP_OPS (sfx, TYPE ## _, float_) \ | |
251 OCTAVE_SS_INT_CMP_OPS (fxs, float_, TYPE ## _) \ | |
212 OCTAVE_SS_INT_BOOL_OPS (ss, TYPE ## _, TYPE ## _, octave_ ## TYPE (0), octave_ ## TYPE (0)) \ | 252 OCTAVE_SS_INT_BOOL_OPS (ss, TYPE ## _, TYPE ## _, octave_ ## TYPE (0), octave_ ## TYPE (0)) \ |
213 OCTAVE_SS_INT_BOOL_OPS (sx, TYPE ## _, , octave_ ## TYPE (0), 0) \ | 253 OCTAVE_SS_INT_BOOL_OPS (sx, TYPE ## _, , octave_ ## TYPE (0), 0) \ |
214 OCTAVE_SS_INT_BOOL_OPS (xs, , TYPE ## _, 0, octave_ ## TYPE (0)) | 254 OCTAVE_SS_INT_BOOL_OPS (xs, , TYPE ## _, 0, octave_ ## TYPE (0)) \ |
255 OCTAVE_SS_INT_BOOL_OPS (sfx, TYPE ## _, float_, octave_ ## TYPE (0), 0) \ | |
256 OCTAVE_SS_INT_BOOL_OPS (fxs, float_, TYPE ## _, 0, octave_ ## TYPE (0)) | |
215 | 257 |
216 #define OCTAVE_SM_INT_ARITH_OPS(PFX, TS, TM) \ | 258 #define OCTAVE_SM_INT_ARITH_OPS(PFX, TS, TM) \ |
217 /* scalar by matrix ops. */ \ | 259 /* scalar by matrix ops. */ \ |
218 \ | 260 \ |
219 DEFNDBINOP_OP (PFX ## _add, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, +) \ | 261 DEFNDBINOP_OP (PFX ## _add, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, +) \ |
307 { \ | 349 { \ |
308 OCTAVE_QUIT; \ | 350 OCTAVE_QUIT; \ |
309 result (i) = pow (a, b(i)); \ | 351 result (i) = pow (a, b(i)); \ |
310 } \ | 352 } \ |
311 return octave_value (result); \ | 353 return octave_value (result); \ |
354 } \ | |
355 \ | |
356 octave_value \ | |
357 elem_xpow (const octave_ ## T1& a, const FloatNDArray& b) \ | |
358 { \ | |
359 T1 ## NDArray result (b.dims ()); \ | |
360 for (int i = 0; i < b.length (); i++) \ | |
361 { \ | |
362 OCTAVE_QUIT; \ | |
363 result (i) = pow (a, b(i)); \ | |
364 } \ | |
365 return octave_value (result); \ | |
366 } \ | |
367 \ | |
368 octave_value \ | |
369 elem_xpow (float a, const T2 ## NDArray& b) \ | |
370 { \ | |
371 T2 ## NDArray result (b.dims ()); \ | |
372 for (int i = 0; i < b.length (); i++) \ | |
373 { \ | |
374 OCTAVE_QUIT; \ | |
375 result (i) = pow (a, b(i)); \ | |
376 } \ | |
377 return octave_value (result); \ | |
312 } | 378 } |
313 | 379 |
314 | 380 |
315 #define OCTAVE_SM_CONV(TS, TM) \ | 381 #define OCTAVE_SM_CONV(TS, TM) \ |
316 DEFCONV (TS ## s_ ## TM ## m_conv, TM ## scalar, TM ## matrix) \ | 382 DEFCONV (TS ## s_ ## TM ## m_conv, TM ## scalar, TM ## matrix) \ |
323 #define OCTAVE_SM_INT_OPS(TYPE) \ | 389 #define OCTAVE_SM_INT_OPS(TYPE) \ |
324 OCTAVE_SM_POW_OPS (TYPE, TYPE) \ | 390 OCTAVE_SM_POW_OPS (TYPE, TYPE) \ |
325 OCTAVE_SM_INT_ARITH_OPS (sm, TYPE ## _, TYPE ## _) \ | 391 OCTAVE_SM_INT_ARITH_OPS (sm, TYPE ## _, TYPE ## _) \ |
326 OCTAVE_SM_INT_ARITH_OPS (smx, TYPE ## _, ) \ | 392 OCTAVE_SM_INT_ARITH_OPS (smx, TYPE ## _, ) \ |
327 OCTAVE_SM_INT_ARITH_OPS (sxm, , TYPE ## _) \ | 393 OCTAVE_SM_INT_ARITH_OPS (sxm, , TYPE ## _) \ |
394 OCTAVE_SM_INT_ARITH_OPS (smfx, TYPE ## _, float_) \ | |
395 OCTAVE_SM_INT_ARITH_OPS (sfxm, float_, TYPE ## _) \ | |
328 OCTAVE_SM_INT_CMP_OPS (sm, TYPE ## _, TYPE ## _) \ | 396 OCTAVE_SM_INT_CMP_OPS (sm, TYPE ## _, TYPE ## _) \ |
329 OCTAVE_SM_INT_CMP_OPS (xm, , TYPE ## _) \ | 397 OCTAVE_SM_INT_CMP_OPS (xm, , TYPE ## _) \ |
330 OCTAVE_SM_INT_CMP_OPS (smx, TYPE ## _, ) \ | 398 OCTAVE_SM_INT_CMP_OPS (smx, TYPE ## _, ) \ |
399 OCTAVE_SM_INT_CMP_OPS (fxm, float_, TYPE ## _) \ | |
400 OCTAVE_SM_INT_CMP_OPS (smfx, TYPE ## _, float_) \ | |
331 OCTAVE_SM_INT_BOOL_OPS (sm, TYPE ## _, TYPE ## _) \ | 401 OCTAVE_SM_INT_BOOL_OPS (sm, TYPE ## _, TYPE ## _) \ |
332 OCTAVE_SM_INT_BOOL_OPS (xm, , TYPE ## _) \ | 402 OCTAVE_SM_INT_BOOL_OPS (xm, , TYPE ## _) \ |
333 OCTAVE_SM_INT_BOOL_OPS (smx, TYPE ## _, ) \ | 403 OCTAVE_SM_INT_BOOL_OPS (smx, TYPE ## _, ) \ |
404 OCTAVE_SM_INT_BOOL_OPS (fxm, float_, TYPE ## _) \ | |
405 OCTAVE_SM_INT_BOOL_OPS (smfx, TYPE ## _, float_) \ | |
334 OCTAVE_SM_CONV (TYPE ## _, TYPE ## _) \ | 406 OCTAVE_SM_CONV (TYPE ## _, TYPE ## _) \ |
335 OCTAVE_SM_CONV (TYPE ## _, complex_) | 407 OCTAVE_SM_CONV (TYPE ## _, complex_) \ |
408 OCTAVE_SM_CONV (TYPE ## _, float_complex_) | |
336 | 409 |
337 #define OCTAVE_MS_INT_ARITH_OPS(PFX, TM, TS) \ | 410 #define OCTAVE_MS_INT_ARITH_OPS(PFX, TM, TS) \ |
338 /* matrix by scalar ops. */ \ | 411 /* matrix by scalar ops. */ \ |
339 \ | 412 \ |
340 DEFNDBINOP_OP (PFX ## _add, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, +) \ | 413 DEFNDBINOP_OP (PFX ## _add, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, +) \ |
429 { \ | 502 { \ |
430 OCTAVE_QUIT; \ | 503 OCTAVE_QUIT; \ |
431 result (i) = pow (a(i), b); \ | 504 result (i) = pow (a(i), b); \ |
432 } \ | 505 } \ |
433 return octave_value (result); \ | 506 return octave_value (result); \ |
507 } \ | |
508 \ | |
509 octave_value elem_xpow (T1 ## NDArray a, float b) \ | |
510 { \ | |
511 T1 ## NDArray result (a.dims ()); \ | |
512 for (int i = 0; i < a.length (); i++) \ | |
513 { \ | |
514 OCTAVE_QUIT; \ | |
515 result (i) = pow (a(i), b); \ | |
516 } \ | |
517 return octave_value (result); \ | |
518 } \ | |
519 \ | |
520 octave_value elem_xpow (FloatNDArray a, octave_ ## T2 b) \ | |
521 { \ | |
522 T2 ## NDArray result (a.dims ()); \ | |
523 for (int i = 0; i < a.length (); i++) \ | |
524 { \ | |
525 OCTAVE_QUIT; \ | |
526 result (i) = pow (a(i), b); \ | |
527 } \ | |
528 return octave_value (result); \ | |
434 } | 529 } |
435 | 530 |
436 | 531 |
437 #define OCTAVE_MS_INT_OPS(TYPE) \ | 532 #define OCTAVE_MS_INT_OPS(TYPE) \ |
438 OCTAVE_MS_POW_OPS (TYPE, TYPE) \ | 533 OCTAVE_MS_POW_OPS (TYPE, TYPE) \ |
439 OCTAVE_MS_INT_ARITH_OPS (ms, TYPE ## _, TYPE ## _) \ | 534 OCTAVE_MS_INT_ARITH_OPS (ms, TYPE ## _, TYPE ## _) \ |
440 OCTAVE_MS_INT_ARITH_OPS (msx, TYPE ## _, ) \ | 535 OCTAVE_MS_INT_ARITH_OPS (msx, TYPE ## _, ) \ |
441 OCTAVE_MS_INT_ARITH_OPS (mxs, , TYPE ## _) \ | 536 OCTAVE_MS_INT_ARITH_OPS (mxs, , TYPE ## _) \ |
537 OCTAVE_MS_INT_ARITH_OPS (msfx, TYPE ## _, float_) \ | |
538 OCTAVE_MS_INT_ARITH_OPS (mfxs, float_, TYPE ## _) \ | |
442 OCTAVE_MS_INT_CMP_OPS (ms, TYPE ## _, TYPE ## _) \ | 539 OCTAVE_MS_INT_CMP_OPS (ms, TYPE ## _, TYPE ## _) \ |
443 OCTAVE_MS_INT_CMP_OPS (mx, TYPE ## _, ) \ | 540 OCTAVE_MS_INT_CMP_OPS (mx, TYPE ## _, ) \ |
444 OCTAVE_MS_INT_CMP_OPS (mxs, , TYPE ## _) \ | 541 OCTAVE_MS_INT_CMP_OPS (mxs, , TYPE ## _) \ |
542 OCTAVE_MS_INT_CMP_OPS (mfx, TYPE ## _, float_) \ | |
543 OCTAVE_MS_INT_CMP_OPS (mfxs, float_, TYPE ## _) \ | |
445 OCTAVE_MS_INT_BOOL_OPS (ms, TYPE ## _, TYPE ## _) \ | 544 OCTAVE_MS_INT_BOOL_OPS (ms, TYPE ## _, TYPE ## _) \ |
446 OCTAVE_MS_INT_BOOL_OPS (mx, TYPE ## _, ) \ | 545 OCTAVE_MS_INT_BOOL_OPS (mx, TYPE ## _, ) \ |
447 OCTAVE_MS_INT_BOOL_OPS (mxs, , TYPE ## _) \ | 546 OCTAVE_MS_INT_BOOL_OPS (mxs, , TYPE ## _) \ |
547 OCTAVE_MS_INT_BOOL_OPS (mfx, TYPE ## _, float_) \ | |
548 OCTAVE_MS_INT_BOOL_OPS (mfxs, float_, TYPE ## _) \ | |
448 OCTAVE_MS_INT_ASSIGN_OPS (ms, TYPE ## _, TYPE ## _, TYPE ## _) \ | 549 OCTAVE_MS_INT_ASSIGN_OPS (ms, TYPE ## _, TYPE ## _, TYPE ## _) \ |
449 OCTAVE_MS_INT_ASSIGN_OPS (mx, TYPE ## _, , ) | 550 OCTAVE_MS_INT_ASSIGN_OPS (mx, TYPE ## _, , ) \ |
551 OCTAVE_MS_INT_ASSIGN_OPS (mfx, TYPE ## _, float_, float_) | |
450 | 552 |
451 #define OCTAVE_M_INT_UNOPS(TYPE) \ | 553 #define OCTAVE_M_INT_UNOPS(TYPE) \ |
452 /* matrix unary ops. */ \ | 554 /* matrix unary ops. */ \ |
453 \ | 555 \ |
454 DEFNDUNOP_OP (m_not, TYPE ## _matrix, TYPE ## _array, !) \ | 556 DEFNDUNOP_OP (m_not, TYPE ## _matrix, TYPE ## _array, !) \ |
570 { \ | 672 { \ |
571 OCTAVE_QUIT; \ | 673 OCTAVE_QUIT; \ |
572 result (i) = pow (a(i), b(i)); \ | 674 result (i) = pow (a(i), b(i)); \ |
573 } \ | 675 } \ |
574 return octave_value (result); \ | 676 return octave_value (result); \ |
677 } \ | |
678 \ | |
679 octave_value \ | |
680 elem_xpow (const T1 ## NDArray& a, const FloatNDArray& b) \ | |
681 { \ | |
682 dim_vector a_dims = a.dims (); \ | |
683 dim_vector b_dims = b.dims (); \ | |
684 if (a_dims != b_dims) \ | |
685 { \ | |
686 gripe_nonconformant ("operator .^", a_dims, b_dims); \ | |
687 return octave_value (); \ | |
688 } \ | |
689 T1 ## NDArray result (a_dims); \ | |
690 for (int i = 0; i < a.length (); i++) \ | |
691 { \ | |
692 OCTAVE_QUIT; \ | |
693 result (i) = pow (a(i), b(i)); \ | |
694 } \ | |
695 return octave_value (result); \ | |
696 } \ | |
697 \ | |
698 octave_value \ | |
699 elem_xpow (const FloatNDArray& a, const T2 ## NDArray& b) \ | |
700 { \ | |
701 dim_vector a_dims = a.dims (); \ | |
702 dim_vector b_dims = b.dims (); \ | |
703 if (a_dims != b_dims) \ | |
704 { \ | |
705 gripe_nonconformant ("operator .^", a_dims, b_dims); \ | |
706 return octave_value (); \ | |
707 } \ | |
708 T2 ## NDArray result (a_dims); \ | |
709 for (int i = 0; i < a.length (); i++) \ | |
710 { \ | |
711 OCTAVE_QUIT; \ | |
712 result (i) = pow (a(i), b(i)); \ | |
713 } \ | |
714 return octave_value (result); \ | |
575 } | 715 } |
576 | 716 |
577 | 717 |
578 #define OCTAVE_MM_CONV(T1, T2) \ | 718 #define OCTAVE_MM_CONV(T1, T2) \ |
579 DEFCONV (T1 ## m_ ## T2 ## m_conv, T1 ## matrix, T2 ## matrix) \ | 719 DEFCONV (T1 ## m_ ## T2 ## m_conv, T1 ## matrix, T2 ## matrix) \ |
587 OCTAVE_M_INT_UNOPS (TYPE) \ | 727 OCTAVE_M_INT_UNOPS (TYPE) \ |
588 OCTAVE_MM_POW_OPS (TYPE, TYPE) \ | 728 OCTAVE_MM_POW_OPS (TYPE, TYPE) \ |
589 OCTAVE_MM_INT_ARITH_OPS (mm, TYPE ## _, TYPE ## _) \ | 729 OCTAVE_MM_INT_ARITH_OPS (mm, TYPE ## _, TYPE ## _) \ |
590 OCTAVE_MM_INT_ARITH_OPS (mmx, TYPE ## _, ) \ | 730 OCTAVE_MM_INT_ARITH_OPS (mmx, TYPE ## _, ) \ |
591 OCTAVE_MM_INT_ARITH_OPS (mxm, , TYPE ## _) \ | 731 OCTAVE_MM_INT_ARITH_OPS (mxm, , TYPE ## _) \ |
732 OCTAVE_MM_INT_ARITH_OPS (mmfx, TYPE ## _, float_) \ | |
733 OCTAVE_MM_INT_ARITH_OPS (mfxm, float_, TYPE ## _) \ | |
592 OCTAVE_MM_INT_CMP_OPS (mm, TYPE ## _, TYPE ## _) \ | 734 OCTAVE_MM_INT_CMP_OPS (mm, TYPE ## _, TYPE ## _) \ |
593 OCTAVE_MM_INT_CMP_OPS (mmx, TYPE ## _, ) \ | 735 OCTAVE_MM_INT_CMP_OPS (mmx, TYPE ## _, ) \ |
736 OCTAVE_MM_INT_CMP_OPS (mfxm, float_, TYPE ## _) \ | |
737 OCTAVE_MM_INT_CMP_OPS (mmfx, TYPE ## _, float_) \ | |
594 OCTAVE_MM_INT_CMP_OPS (mxm, , TYPE ## _) \ | 738 OCTAVE_MM_INT_CMP_OPS (mxm, , TYPE ## _) \ |
595 OCTAVE_MM_INT_BOOL_OPS (mm, TYPE ## _, TYPE ## _) \ | 739 OCTAVE_MM_INT_BOOL_OPS (mm, TYPE ## _, TYPE ## _) \ |
596 OCTAVE_MM_INT_BOOL_OPS (mmx, TYPE ## _, ) \ | 740 OCTAVE_MM_INT_BOOL_OPS (mmx, TYPE ## _, ) \ |
597 OCTAVE_MM_INT_BOOL_OPS (mxm, , TYPE ## _) \ | 741 OCTAVE_MM_INT_BOOL_OPS (mxm, , TYPE ## _) \ |
742 OCTAVE_MM_INT_BOOL_OPS (mmfx, TYPE ## _, float_) \ | |
743 OCTAVE_MM_INT_BOOL_OPS (mfxm, float_, TYPE ## _) \ | |
598 OCTAVE_MM_INT_ASSIGN_OPS (mm, TYPE ## _, TYPE ## _, TYPE ## _) \ | 744 OCTAVE_MM_INT_ASSIGN_OPS (mm, TYPE ## _, TYPE ## _, TYPE ## _) \ |
599 OCTAVE_MM_INT_ASSIGN_OPS (mmx, TYPE ## _, , ) \ | 745 OCTAVE_MM_INT_ASSIGN_OPS (mmx, TYPE ## _, , ) \ |
600 OCTAVE_MM_CONV(TYPE ## _, complex_) | 746 OCTAVE_MM_INT_ASSIGN_OPS (mmfx, TYPE ## _, float_, float_) \ |
747 OCTAVE_MM_CONV(TYPE ## _, complex_) \ | |
748 OCTAVE_MM_CONV(TYPE ## _, float_complex_) | |
601 | 749 |
602 #define OCTAVE_RE_INT_ASSIGN_OPS(TYPE) \ | 750 #define OCTAVE_RE_INT_ASSIGN_OPS(TYPE) \ |
603 DEFNDASSIGNOP_FN (TYPE ## ms_assign, matrix, TYPE ## _scalar, array, assign) \ | 751 DEFNDASSIGNOP_FN (TYPE ## ms_assign, matrix, TYPE ## _scalar, array, assign) \ |
604 DEFNDASSIGNOP_FN (TYPE ## mm_assign, matrix, TYPE ## _matrix, array, assign) | 752 DEFNDASSIGNOP_FN (TYPE ## mm_assign, matrix, TYPE ## _matrix, array, assign) |
605 | 753 |
754 #define OCTAVE_FLT_RE_INT_ASSIGN_OPS(TYPE) \ | |
755 DEFNDASSIGNOP_FN (TYPE ## fms_assign, float_matrix, TYPE ## _scalar, float_array, assign) \ | |
756 DEFNDASSIGNOP_FN (TYPE ## fmm_assign, float_matrix, TYPE ## _matrix, float_array, assign) | |
757 | |
606 #define OCTAVE_CX_INT_ASSIGN_OPS(TYPE) \ | 758 #define OCTAVE_CX_INT_ASSIGN_OPS(TYPE) \ |
607 DEFNDASSIGNOP_FN (TYPE ## cms_assign, complex_matrix, TYPE ## _scalar, complex_array, assign) \ | 759 DEFNDASSIGNOP_FN (TYPE ## cms_assign, complex_matrix, TYPE ## _scalar, complex_array, assign) \ |
608 DEFNDASSIGNOP_FN (TYPE ## cmm_assign, complex_matrix, TYPE ## _matrix, complex_array, assign) | 760 DEFNDASSIGNOP_FN (TYPE ## cmm_assign, complex_matrix, TYPE ## _matrix, complex_array, assign) |
761 | |
762 #define OCTAVE_FLT_CX_INT_ASSIGN_OPS(TYPE) \ | |
763 DEFNDASSIGNOP_FN (TYPE ## fcms_assign, float_complex_matrix, TYPE ## _scalar, float_complex_array, assign) \ | |
764 DEFNDASSIGNOP_FN (TYPE ## fcmm_assign, float_complex_matrix, TYPE ## _matrix, float_complex_array, assign) | |
609 | 765 |
610 #define OCTAVE_INT_OPS(TYPE) \ | 766 #define OCTAVE_INT_OPS(TYPE) \ |
611 OCTAVE_SS_INT_OPS (TYPE) \ | 767 OCTAVE_SS_INT_OPS (TYPE) \ |
612 OCTAVE_SM_INT_OPS (TYPE) \ | 768 OCTAVE_SM_INT_OPS (TYPE) \ |
613 OCTAVE_MS_INT_OPS (TYPE) \ | 769 OCTAVE_MS_INT_OPS (TYPE) \ |
614 OCTAVE_MM_INT_OPS (TYPE) \ | 770 OCTAVE_MM_INT_OPS (TYPE) \ |
615 OCTAVE_CONCAT_FN (TYPE) \ | 771 OCTAVE_CONCAT_FN (TYPE) \ |
616 OCTAVE_RE_INT_ASSIGN_OPS (TYPE) \ | 772 OCTAVE_RE_INT_ASSIGN_OPS (TYPE) \ |
617 OCTAVE_CX_INT_ASSIGN_OPS (TYPE) | 773 OCTAVE_FLT_RE_INT_ASSIGN_OPS (TYPE) \ |
774 OCTAVE_CX_INT_ASSIGN_OPS (TYPE) \ | |
775 OCTAVE_FLT_CX_INT_ASSIGN_OPS (TYPE) | |
618 | 776 |
619 #define OCTAVE_INSTALL_S_INT_UNOPS(TYPE) \ | 777 #define OCTAVE_INSTALL_S_INT_UNOPS(TYPE) \ |
620 INSTALL_UNOP (op_not, octave_ ## TYPE ## _scalar, s_not); \ | 778 INSTALL_UNOP (op_not, octave_ ## TYPE ## _scalar, s_not); \ |
621 INSTALL_UNOP (op_uplus, octave_ ## TYPE ## _scalar, s_uplus); \ | 779 INSTALL_UNOP (op_uplus, octave_ ## TYPE ## _scalar, s_uplus); \ |
622 INSTALL_UNOP (op_uminus, octave_ ## TYPE ## _scalar, s_uminus); \ | 780 INSTALL_UNOP (op_uminus, octave_ ## TYPE ## _scalar, s_uminus); \ |
653 #define OCTAVE_INSTALL_SS_INT_OPS(TYPE) \ | 811 #define OCTAVE_INSTALL_SS_INT_OPS(TYPE) \ |
654 OCTAVE_INSTALL_S_INT_UNOPS (TYPE) \ | 812 OCTAVE_INSTALL_S_INT_UNOPS (TYPE) \ |
655 OCTAVE_INSTALL_SS_INT_ARITH_OPS (ss, TYPE ## _, TYPE ## _) \ | 813 OCTAVE_INSTALL_SS_INT_ARITH_OPS (ss, TYPE ## _, TYPE ## _) \ |
656 OCTAVE_INSTALL_SS_INT_ARITH_OPS (ssx, TYPE ## _, ) \ | 814 OCTAVE_INSTALL_SS_INT_ARITH_OPS (ssx, TYPE ## _, ) \ |
657 OCTAVE_INSTALL_SS_INT_ARITH_OPS (sxs, , TYPE ## _) \ | 815 OCTAVE_INSTALL_SS_INT_ARITH_OPS (sxs, , TYPE ## _) \ |
816 OCTAVE_INSTALL_SS_INT_ARITH_OPS (ssfx, TYPE ## _, float_) \ | |
817 OCTAVE_INSTALL_SS_INT_ARITH_OPS (sfxs, float_, TYPE ## _) \ | |
658 OCTAVE_INSTALL_SS_INT_CMP_OPS (ss, TYPE ## _, TYPE ## _) \ | 818 OCTAVE_INSTALL_SS_INT_CMP_OPS (ss, TYPE ## _, TYPE ## _) \ |
659 OCTAVE_INSTALL_SS_INT_CMP_OPS (sx, TYPE ## _, ) \ | 819 OCTAVE_INSTALL_SS_INT_CMP_OPS (sx, TYPE ## _, ) \ |
660 OCTAVE_INSTALL_SS_INT_CMP_OPS (xs, , TYPE ## _) \ | 820 OCTAVE_INSTALL_SS_INT_CMP_OPS (xs, , TYPE ## _) \ |
821 OCTAVE_INSTALL_SS_INT_CMP_OPS (sfx, TYPE ## _, float_) \ | |
822 OCTAVE_INSTALL_SS_INT_CMP_OPS (fxs, float_, TYPE ## _) \ | |
661 OCTAVE_INSTALL_SS_INT_BOOL_OPS (ss, TYPE ## _, TYPE ## _) \ | 823 OCTAVE_INSTALL_SS_INT_BOOL_OPS (ss, TYPE ## _, TYPE ## _) \ |
662 OCTAVE_INSTALL_SS_INT_BOOL_OPS (sx, TYPE ## _, ) \ | 824 OCTAVE_INSTALL_SS_INT_BOOL_OPS (sx, TYPE ## _, ) \ |
663 OCTAVE_INSTALL_SS_INT_BOOL_OPS (xs, , TYPE ## _) \ | 825 OCTAVE_INSTALL_SS_INT_BOOL_OPS (xs, , TYPE ## _) \ |
826 OCTAVE_INSTALL_SS_INT_BOOL_OPS (sfx, TYPE ## _, float_) \ | |
827 OCTAVE_INSTALL_SS_INT_BOOL_OPS (fxs, float_, TYPE ## _) \ | |
664 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _matrix) \ | 828 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _matrix) \ |
665 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_scalar, octave_ ## TYPE ## _matrix) \ | 829 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_scalar, octave_ ## TYPE ## _matrix) \ |
666 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_complex_scalar, octave_complex_matrix) | 830 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_float_scalar, octave_ ## TYPE ## _matrix) \ |
831 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_complex_scalar, octave_complex_matrix) \ | |
832 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_float_complex_scalar, octave_float_complex_matrix) | |
667 | 833 |
668 #define OCTAVE_INSTALL_SM_INT_ARITH_OPS(PFX, T1, T2) \ | 834 #define OCTAVE_INSTALL_SM_INT_ARITH_OPS(PFX, T1, T2) \ |
669 INSTALL_BINOP (op_add, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _add); \ | 835 INSTALL_BINOP (op_add, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _add); \ |
670 INSTALL_BINOP (op_sub, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _sub); \ | 836 INSTALL_BINOP (op_sub, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _sub); \ |
671 INSTALL_BINOP (op_mul, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _mul); \ | 837 INSTALL_BINOP (op_mul, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _mul); \ |
691 | 857 |
692 #define OCTAVE_INSTALL_SM_INT_OPS(TYPE) \ | 858 #define OCTAVE_INSTALL_SM_INT_OPS(TYPE) \ |
693 OCTAVE_INSTALL_SM_INT_ARITH_OPS (sm, TYPE ## _, TYPE ## _) \ | 859 OCTAVE_INSTALL_SM_INT_ARITH_OPS (sm, TYPE ## _, TYPE ## _) \ |
694 OCTAVE_INSTALL_SM_INT_ARITH_OPS (smx, TYPE ## _, ) \ | 860 OCTAVE_INSTALL_SM_INT_ARITH_OPS (smx, TYPE ## _, ) \ |
695 OCTAVE_INSTALL_SM_INT_ARITH_OPS (sxm, , TYPE ## _) \ | 861 OCTAVE_INSTALL_SM_INT_ARITH_OPS (sxm, , TYPE ## _) \ |
862 OCTAVE_INSTALL_SM_INT_ARITH_OPS (smfx, TYPE ## _, float_) \ | |
863 OCTAVE_INSTALL_SM_INT_ARITH_OPS (sfxm, float_, TYPE ## _) \ | |
696 OCTAVE_INSTALL_SM_INT_CMP_OPS (sm, TYPE ## _, TYPE ## _) \ | 864 OCTAVE_INSTALL_SM_INT_CMP_OPS (sm, TYPE ## _, TYPE ## _) \ |
697 OCTAVE_INSTALL_SM_INT_CMP_OPS (xm, , TYPE ## _) \ | 865 OCTAVE_INSTALL_SM_INT_CMP_OPS (xm, , TYPE ## _) \ |
698 OCTAVE_INSTALL_SM_INT_CMP_OPS (smx, TYPE ## _, ) \ | 866 OCTAVE_INSTALL_SM_INT_CMP_OPS (smx, TYPE ## _, ) \ |
867 OCTAVE_INSTALL_SM_INT_CMP_OPS (fxm, float_, TYPE ## _) \ | |
868 OCTAVE_INSTALL_SM_INT_CMP_OPS (smfx, TYPE ## _, float_) \ | |
699 OCTAVE_INSTALL_SM_INT_BOOL_OPS (sm, TYPE ## _, TYPE ## _) \ | 869 OCTAVE_INSTALL_SM_INT_BOOL_OPS (sm, TYPE ## _, TYPE ## _) \ |
700 OCTAVE_INSTALL_SM_INT_BOOL_OPS (xm, , TYPE ## _) \ | 870 OCTAVE_INSTALL_SM_INT_BOOL_OPS (xm, , TYPE ## _) \ |
701 OCTAVE_INSTALL_SM_INT_BOOL_OPS (smx, TYPE ## _, ) \ | 871 OCTAVE_INSTALL_SM_INT_BOOL_OPS (smx, TYPE ## _, ) \ |
872 OCTAVE_INSTALL_SM_INT_BOOL_OPS (fxm, float_, TYPE ## _) \ | |
873 OCTAVE_INSTALL_SM_INT_BOOL_OPS (smfx, TYPE ## _, float_) \ | |
702 INSTALL_WIDENOP (octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _matrix, TYPE ## _s_ ## TYPE ## _m_conv) \ | 874 INSTALL_WIDENOP (octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _matrix, TYPE ## _s_ ## TYPE ## _m_conv) \ |
703 INSTALL_WIDENOP (octave_ ## TYPE ## _scalar, octave_complex_matrix, TYPE ## _s_complex_m_conv) \ | 875 INSTALL_WIDENOP (octave_ ## TYPE ## _scalar, octave_complex_matrix, TYPE ## _s_complex_m_conv) \ |
876 INSTALL_WIDENOP (octave_ ## TYPE ## _scalar, octave_float_complex_matrix, TYPE ## _s_float_complex_m_conv) \ | |
704 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _matrix, octave_ ## TYPE ## _matrix) \ | 877 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _matrix, octave_ ## TYPE ## _matrix) \ |
705 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_matrix, octave_ ## TYPE ## _matrix) \ | 878 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_matrix, octave_ ## TYPE ## _matrix) \ |
706 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_complex_matrix, octave_complex_matrix) | 879 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_float_matrix, octave_ ## TYPE ## _matrix) \ |
880 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_complex_matrix, octave_complex_matrix) \ | |
881 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_float_complex_matrix, octave_float_complex_matrix) | |
707 | 882 |
708 #define OCTAVE_INSTALL_MS_INT_ARITH_OPS(PFX, T1, T2) \ | 883 #define OCTAVE_INSTALL_MS_INT_ARITH_OPS(PFX, T1, T2) \ |
709 INSTALL_BINOP (op_add, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _add); \ | 884 INSTALL_BINOP (op_add, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _add); \ |
710 INSTALL_BINOP (op_sub, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _sub); \ | 885 INSTALL_BINOP (op_sub, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _sub); \ |
711 INSTALL_BINOP (op_mul, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _mul); \ | 886 INSTALL_BINOP (op_mul, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _mul); \ |
735 | 910 |
736 #define OCTAVE_INSTALL_MS_INT_OPS(TYPE) \ | 911 #define OCTAVE_INSTALL_MS_INT_OPS(TYPE) \ |
737 OCTAVE_INSTALL_MS_INT_ARITH_OPS (ms, TYPE ## _, TYPE ## _) \ | 912 OCTAVE_INSTALL_MS_INT_ARITH_OPS (ms, TYPE ## _, TYPE ## _) \ |
738 OCTAVE_INSTALL_MS_INT_ARITH_OPS (msx, TYPE ## _, ) \ | 913 OCTAVE_INSTALL_MS_INT_ARITH_OPS (msx, TYPE ## _, ) \ |
739 OCTAVE_INSTALL_MS_INT_ARITH_OPS (mxs, , TYPE ## _) \ | 914 OCTAVE_INSTALL_MS_INT_ARITH_OPS (mxs, , TYPE ## _) \ |
915 OCTAVE_INSTALL_MS_INT_ARITH_OPS (msfx, TYPE ## _, float_) \ | |
916 OCTAVE_INSTALL_MS_INT_ARITH_OPS (mfxs, float_, TYPE ## _) \ | |
740 OCTAVE_INSTALL_MS_INT_CMP_OPS (ms, TYPE ## _, TYPE ## _) \ | 917 OCTAVE_INSTALL_MS_INT_CMP_OPS (ms, TYPE ## _, TYPE ## _) \ |
741 OCTAVE_INSTALL_MS_INT_CMP_OPS (mx, TYPE ## _, ) \ | 918 OCTAVE_INSTALL_MS_INT_CMP_OPS (mx, TYPE ## _, ) \ |
742 OCTAVE_INSTALL_MS_INT_CMP_OPS (mxs, , TYPE ## _) \ | 919 OCTAVE_INSTALL_MS_INT_CMP_OPS (mxs, , TYPE ## _) \ |
920 OCTAVE_INSTALL_MS_INT_CMP_OPS (mfx, TYPE ## _, float_) \ | |
921 OCTAVE_INSTALL_MS_INT_CMP_OPS (mfxs, float_, TYPE ## _) \ | |
743 OCTAVE_INSTALL_MS_INT_BOOL_OPS (ms, TYPE ## _, TYPE ## _) \ | 922 OCTAVE_INSTALL_MS_INT_BOOL_OPS (ms, TYPE ## _, TYPE ## _) \ |
744 OCTAVE_INSTALL_MS_INT_BOOL_OPS (mx, TYPE ## _, ) \ | 923 OCTAVE_INSTALL_MS_INT_BOOL_OPS (mx, TYPE ## _, ) \ |
745 OCTAVE_INSTALL_MS_INT_BOOL_OPS (mxs, , TYPE ## _) \ | 924 OCTAVE_INSTALL_MS_INT_BOOL_OPS (mxs, , TYPE ## _) \ |
925 OCTAVE_INSTALL_MS_INT_BOOL_OPS (mfx, TYPE ## _, float_) \ | |
926 OCTAVE_INSTALL_MS_INT_BOOL_OPS (mfxs, float_, TYPE ## _) \ | |
746 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (ms, TYPE ## _, TYPE ## _) \ | 927 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (ms, TYPE ## _, TYPE ## _) \ |
747 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mx, TYPE ## _, ) \ | 928 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mx, TYPE ## _, ) \ |
748 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _matrix, octave_complex_scalar, octave_complex_matrix) | 929 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mfx, TYPE ## _, float_) \ |
930 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _matrix, octave_complex_scalar, octave_complex_matrix) \ | |
931 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _matrix, octave_float_complex_scalar, octave_float_complex_matrix) | |
749 | 932 |
750 #define OCTAVE_INSTALL_M_INT_UNOPS(TYPE) \ | 933 #define OCTAVE_INSTALL_M_INT_UNOPS(TYPE) \ |
751 INSTALL_UNOP (op_not, octave_ ## TYPE ## _matrix, m_not); \ | 934 INSTALL_UNOP (op_not, octave_ ## TYPE ## _matrix, m_not); \ |
752 INSTALL_UNOP (op_uplus, octave_ ## TYPE ## _matrix, m_uplus); \ | 935 INSTALL_UNOP (op_uplus, octave_ ## TYPE ## _matrix, m_uplus); \ |
753 INSTALL_UNOP (op_uminus, octave_ ## TYPE ## _matrix, m_uminus); \ | 936 INSTALL_UNOP (op_uminus, octave_ ## TYPE ## _matrix, m_uminus); \ |
787 #define OCTAVE_INSTALL_MM_INT_OPS(TYPE) \ | 970 #define OCTAVE_INSTALL_MM_INT_OPS(TYPE) \ |
788 OCTAVE_INSTALL_M_INT_UNOPS (TYPE) \ | 971 OCTAVE_INSTALL_M_INT_UNOPS (TYPE) \ |
789 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mm, TYPE ##_, TYPE ## _) \ | 972 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mm, TYPE ##_, TYPE ## _) \ |
790 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mmx, TYPE ##_, ) \ | 973 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mmx, TYPE ##_, ) \ |
791 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mxm, , TYPE ##_) \ | 974 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mxm, , TYPE ##_) \ |
975 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mmfx, TYPE ##_, float_) \ | |
976 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mfxm, float_, TYPE ##_) \ | |
792 OCTAVE_INSTALL_MM_INT_CMP_OPS (mm, TYPE ## _, TYPE ## _) \ | 977 OCTAVE_INSTALL_MM_INT_CMP_OPS (mm, TYPE ## _, TYPE ## _) \ |
793 OCTAVE_INSTALL_MM_INT_CMP_OPS (mmx, TYPE ## _, ) \ | 978 OCTAVE_INSTALL_MM_INT_CMP_OPS (mmx, TYPE ## _, ) \ |
794 OCTAVE_INSTALL_MM_INT_CMP_OPS (mxm, , TYPE ## _) \ | 979 OCTAVE_INSTALL_MM_INT_CMP_OPS (mxm, , TYPE ## _) \ |
980 OCTAVE_INSTALL_MM_INT_CMP_OPS (mmfx, TYPE ## _, float_) \ | |
981 OCTAVE_INSTALL_MM_INT_CMP_OPS (mfxm, float_, TYPE ## _) \ | |
795 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mm, TYPE ## _, TYPE ## _) \ | 982 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mm, TYPE ## _, TYPE ## _) \ |
796 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mmx, TYPE ## _, ) \ | 983 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mmx, TYPE ## _, ) \ |
797 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mxm, , TYPE ## _) \ | 984 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mxm, , TYPE ## _) \ |
985 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mmfx, TYPE ## _, float_) \ | |
986 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mfxm, float_, TYPE ## _) \ | |
798 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mm, TYPE ## _, TYPE ## _) \ | 987 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mm, TYPE ## _, TYPE ## _) \ |
799 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmx, TYPE ## _, ) \ | 988 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmx, TYPE ## _, ) \ |
989 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmfx, TYPE ## _, float_) \ | |
800 INSTALL_WIDENOP (octave_ ## TYPE ## _matrix, octave_complex_matrix, TYPE ## _m_complex_m_conv) \ | 990 INSTALL_WIDENOP (octave_ ## TYPE ## _matrix, octave_complex_matrix, TYPE ## _m_complex_m_conv) \ |
801 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _matrix, octave_complex_matrix, octave_complex_matrix) | 991 INSTALL_WIDENOP (octave_ ## TYPE ## _matrix, octave_float_complex_matrix, TYPE ## _m_float_complex_m_conv) \ |
992 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _matrix, octave_complex_matrix, octave_complex_matrix) \ | |
993 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _matrix, octave_float_complex_matrix, octave_float_complex_matrix) | |
802 | 994 |
803 #define OCTAVE_INSTALL_RE_INT_ASSIGN_OPS(TYPE) \ | 995 #define OCTAVE_INSTALL_RE_INT_ASSIGN_OPS(TYPE) \ |
804 INSTALL_ASSIGNOP (op_asn_eq, octave_matrix, octave_ ## TYPE ## _scalar, TYPE ## ms_assign) \ | 996 INSTALL_ASSIGNOP (op_asn_eq, octave_matrix, octave_ ## TYPE ## _scalar, TYPE ## ms_assign) \ |
805 INSTALL_ASSIGNOP (op_asn_eq, octave_matrix, octave_ ## TYPE ## _matrix, TYPE ## mm_assign) \ | 997 INSTALL_ASSIGNOP (op_asn_eq, octave_matrix, octave_ ## TYPE ## _matrix, TYPE ## mm_assign) \ |
806 INSTALL_ASSIGNCONV (octave_scalar, octave_ ## TYPE ## _scalar, octave_matrix) \ | 998 INSTALL_ASSIGNCONV (octave_scalar, octave_ ## TYPE ## _scalar, octave_matrix) \ |
807 INSTALL_ASSIGNCONV (octave_matrix, octave_ ## TYPE ## _matrix, octave_matrix) | 999 INSTALL_ASSIGNCONV (octave_matrix, octave_ ## TYPE ## _matrix, octave_matrix) |
808 | 1000 |
1001 #define OCTAVE_INSTALL_FLT_RE_INT_ASSIGN_OPS(TYPE) \ | |
1002 INSTALL_ASSIGNOP (op_asn_eq, octave_float_matrix, octave_ ## TYPE ## _scalar, TYPE ## fms_assign) \ | |
1003 INSTALL_ASSIGNOP (op_asn_eq, octave_float_matrix, octave_ ## TYPE ## _matrix, TYPE ## fmm_assign) \ | |
1004 INSTALL_ASSIGNCONV (octave_float_scalar, octave_ ## TYPE ## _scalar, octave_float_matrix) \ | |
1005 INSTALL_ASSIGNCONV (octave_float_matrix, octave_ ## TYPE ## _matrix, octave_float_matrix) | |
1006 | |
809 #define OCTAVE_INSTALL_CX_INT_ASSIGN_OPS(TYPE) \ | 1007 #define OCTAVE_INSTALL_CX_INT_ASSIGN_OPS(TYPE) \ |
810 INSTALL_ASSIGNOP (op_asn_eq, octave_complex_matrix, octave_ ## TYPE ## _scalar, TYPE ## cms_assign) \ | 1008 INSTALL_ASSIGNOP (op_asn_eq, octave_complex_matrix, octave_ ## TYPE ## _scalar, TYPE ## cms_assign) \ |
811 INSTALL_ASSIGNOP (op_asn_eq, octave_complex_matrix, octave_ ## TYPE ## _matrix, TYPE ## cmm_assign) \ | 1009 INSTALL_ASSIGNOP (op_asn_eq, octave_complex_matrix, octave_ ## TYPE ## _matrix, TYPE ## cmm_assign) \ |
812 INSTALL_ASSIGNCONV (octave_complex_scalar, octave_ ## TYPE ## _scalar, octave_complex_matrix) \ | 1010 INSTALL_ASSIGNCONV (octave_complex_scalar, octave_ ## TYPE ## _scalar, octave_complex_matrix) \ |
813 INSTALL_ASSIGNCONV (octave_complex_matrix, octave_ ## TYPE ## _matrix, octave_complex_matrix) | 1011 INSTALL_ASSIGNCONV (octave_complex_matrix, octave_ ## TYPE ## _matrix, octave_complex_matrix) |
1012 | |
1013 #define OCTAVE_INSTALL_FLT_CX_INT_ASSIGN_OPS(TYPE) \ | |
1014 INSTALL_ASSIGNOP (op_asn_eq, octave_float_complex_matrix, octave_ ## TYPE ## _scalar, TYPE ## fcms_assign) \ | |
1015 INSTALL_ASSIGNOP (op_asn_eq, octave_float_complex_matrix, octave_ ## TYPE ## _matrix, TYPE ## fcmm_assign) \ | |
1016 INSTALL_ASSIGNCONV (octave_float_complex_scalar, octave_ ## TYPE ## _scalar, octave_complex_matrix) \ | |
1017 INSTALL_ASSIGNCONV (octave_float_complex_matrix, octave_ ## TYPE ## _matrix, octave_complex_matrix) | |
814 | 1018 |
815 #define OCTAVE_INSTALL_INT_OPS(TYPE) \ | 1019 #define OCTAVE_INSTALL_INT_OPS(TYPE) \ |
816 OCTAVE_INSTALL_SS_INT_OPS (TYPE) \ | 1020 OCTAVE_INSTALL_SS_INT_OPS (TYPE) \ |
817 OCTAVE_INSTALL_SM_INT_OPS (TYPE) \ | 1021 OCTAVE_INSTALL_SM_INT_OPS (TYPE) \ |
818 OCTAVE_INSTALL_MS_INT_OPS (TYPE) \ | 1022 OCTAVE_INSTALL_MS_INT_OPS (TYPE) \ |
819 OCTAVE_INSTALL_MM_INT_OPS (TYPE) \ | 1023 OCTAVE_INSTALL_MM_INT_OPS (TYPE) \ |
820 OCTAVE_INSTALL_CONCAT_FN (TYPE) \ | 1024 OCTAVE_INSTALL_CONCAT_FN (TYPE) \ |
821 OCTAVE_INSTALL_RE_INT_ASSIGN_OPS (TYPE) \ | 1025 OCTAVE_INSTALL_RE_INT_ASSIGN_OPS (TYPE) \ |
822 OCTAVE_INSTALL_CX_INT_ASSIGN_OPS (TYPE) | 1026 OCTAVE_INSTALL_FLT_RE_INT_ASSIGN_OPS (TYPE) \ |
1027 OCTAVE_INSTALL_CX_INT_ASSIGN_OPS (TYPE) \ | |
1028 OCTAVE_INSTALL_FLT_CX_INT_ASSIGN_OPS (TYPE) | |
823 | 1029 |
824 #define OCTAVE_INSTALL_SM_INT_ASSIGNCONV(TLHS, TRHS) \ | 1030 #define OCTAVE_INSTALL_SM_INT_ASSIGNCONV(TLHS, TRHS) \ |
825 INSTALL_ASSIGNCONV (octave_ ## TLHS ## _scalar, octave_ ## TRHS ## _scalar, octave_ ## TLHS ## _matrix) \ | 1031 INSTALL_ASSIGNCONV (octave_ ## TLHS ## _scalar, octave_ ## TRHS ## _scalar, octave_ ## TLHS ## _matrix) \ |
826 INSTALL_ASSIGNCONV (octave_ ## TLHS ## _scalar, octave_ ## TRHS ## _matrix, octave_ ## TLHS ## _matrix) | 1032 INSTALL_ASSIGNCONV (octave_ ## TLHS ## _scalar, octave_ ## TRHS ## _matrix, octave_ ## TLHS ## _matrix) |
827 | 1033 |