annotate libinterp/operators/op-int.h @ 19895:19755f4fc851

maint: Cleanup C++ code to follow Octave coding conventions. Try to wrap long lines to < 80 characters. Use GNU style and don't indent first brace of function definition. "case" statement is aligned flush left with brace of switch stmt. Remove trailing '\' line continuation from the end of #define macros. Use 2 spaces for indent. * files-dock-widget.cc, history-dock-widget.cc, main-window.cc, octave-cmd.cc, octave-dock-widget.cc, octave-gui.cc, resource-manager.cc, settings-dialog.cc, shortcut-manager.cc, welcome-wizard.cc, workspace-view.cc, cellfun.cc, data.cc, debug.cc, debug.h, dirfns.cc, error.h, file-io.cc, gl-render.cc, gl-render.h, gl2ps-renderer.h, graphics.cc, graphics.in.h, help.cc, input.cc, load-path.cc, load-path.h, lookup.cc, lu.cc, oct-stream.cc, octave-default-image.h, ordschur.cc, pr-output.cc, qz.cc, strfns.cc, symtab.cc, symtab.h, sysdep.cc, variables.cc, zfstream.h, __fltk_uigetfile__.cc, __init_fltk__.cc, __magick_read__.cc, __osmesa_print__.cc, audiodevinfo.cc, ov-classdef.cc, ov-classdef.h, ov-fcn.h, ov-float.cc, ov-flt-complex.cc, ov-java.cc, ov-range.cc, ov-re-mat.cc, ov-usr-fcn.h, ov.cc, op-int.h, options-usage.h, pt-eval.cc, Array-C.cc, Array-fC.cc, Array.cc, Array.h, PermMatrix.cc, Sparse.cc, chMatrix.h, dSparse.cc, dim-vector.h, bsxfun-decl.h, bsxfun-defs.cc, oct-norm.cc, Sparse-op-defs.h, oct-inttypes.cc, oct-inttypes.h, main.in.cc, mkoctfile.in.cc: Cleanup C++ code to follow Octave coding conventions.
author Rik <rik@octave.org>
date Wed, 25 Feb 2015 11:55:49 -0800
parents 4197fc428c7d
children a9574e3c6e9e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1 /*
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
2
19731
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 18212
diff changeset
3 Copyright (C) 1996-2015 John W. Eaton
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
4
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
6
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5829
diff changeset
9 Free Software Foundation; either version 3 of the License, or (at your
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5829
diff changeset
10 option) any later version.
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
11
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
15 for more details.
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
16
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5829
diff changeset
18 along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5829
diff changeset
19 <http://www.gnu.org/licenses/>.
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
20
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
21 */
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
22
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
23 #include "quit.h"
13005
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
24 #include "bsxfun.h"
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
25
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
26 #define DEFINTBINOP_OP(name, t1, t2, op, t3) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
27 BINOPDECL (name, a1, a2) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
28 { \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
29 CAST_BINOP_ARGS (const octave_ ## t1&, const octave_ ## t2&); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
30 octave_value retval = octave_value \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
31 (v1.t1 ## _value () op v2.t2 ## _value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
32 return retval; \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
33 }
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
34
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
35 #define DEFINTNDBINOP_OP(name, t1, t2, e1, e2, op, t3) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
36 BINOPDECL (name, a1, a2) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
37 { \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
38 CAST_BINOP_ARGS (const octave_ ## t1&, const octave_ ## t2&); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
39 octave_value retval = octave_value \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
40 (v1.e1 ## _value () op v2.e2 ## _value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
41 return retval; \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
42 }
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
43
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
44 #define DEFINTBINOP_FN(name, t1, t2, f, t3, op) \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
45 BINOPDECL (name, a1, a2) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
46 { \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
47 CAST_BINOP_ARGS (const octave_ ## t1&, const octave_ ## t2&); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
48 octave_value retval = octave_value (f (v1.t1 ## _value (), v2.t2 ## _value ())); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
49 return retval; \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
50 }
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
51
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
52 #define DEFINTNDBINOP_FN(name, t1, t2, e1, e2, f, t3, op) \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
53 BINOPDECL (name, a1, a2) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
54 { \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
55 CAST_BINOP_ARGS (const octave_ ## t1&, const octave_ ## t2&); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
56 octave_value retval = octave_value (f (v1.e1 ## _value (), v2.e2 ## _value ())); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
57 return retval; \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
58 }
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
59
5075
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
60 #define OCTAVE_CONCAT_FN2(T1, T2) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
61 DEFNDCATOP_FN2 (T1 ## _ ## T2 ## _s_s, T1 ## _scalar, T2 ## _scalar, , T1 ## NDArray, T1 ## _array, T2 ## _array, concat) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
62 DEFNDCATOP_FN2 (T1 ## _ ## T2 ## _s_m, T1 ## _scalar, T2 ## _matrix, , T1 ## NDArray, T1 ## _array, T2 ## _array, concat) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
63 DEFNDCATOP_FN2 (T1 ## _ ## T2 ## _m_s, T1 ## _matrix, T2 ## _scalar, , T1 ## NDArray, T1 ## _array, T2 ## _array, concat) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
64 DEFNDCATOP_FN2 (T1 ## _ ## T2 ## _m_m, T1 ## _matrix, T2 ## _matrix, , T1 ## NDArray, T1 ## _array, T2 ## _array, concat)
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
65
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
66 #define OCTAVE_INSTALL_CONCAT_FN2(T1, T2) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
67 INSTALL_CATOP (octave_ ## T1 ## _scalar, octave_ ## T2 ## _scalar, T1 ## _ ## T2 ## _s_s) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
68 INSTALL_CATOP (octave_ ## T1 ## _scalar, octave_ ## T2 ## _matrix, T1 ## _ ## T2 ## _s_m) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
69 INSTALL_CATOP (octave_ ## T1 ## _matrix, octave_ ## T2 ## _scalar, T1 ## _ ## T2 ## _m_s) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
70 INSTALL_CATOP (octave_ ## T1 ## _matrix, octave_ ## T2 ## _matrix, T1 ## _ ## T2 ## _m_m)
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
71
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
72 #define OCTAVE_DOUBLE_INT_CONCAT_FN(TYPE) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
73 DEFNDCATOP_FN2 (double ## _ ## TYPE ## _s_s, scalar, TYPE ## _scalar, TYPE ## NDArray, , array, TYPE ## _array, concat) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
74 DEFNDCATOP_FN2 (double ## _ ## TYPE ## _s_m, scalar, TYPE ## _matrix, TYPE ## NDArray, , array, TYPE ## _array, concat) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
75 DEFNDCATOP_FN2 (double ## _ ## TYPE ## _m_s, matrix, TYPE ## _scalar, TYPE ## NDArray, , array, TYPE ## _array, concat) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
76 DEFNDCATOP_FN2 (double ## _ ## TYPE ## _m_m, matrix, TYPE ## _matrix, TYPE ## NDArray, , array, TYPE ## _array, concat)
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
77
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
78 #define OCTAVE_INSTALL_DOUBLE_INT_CONCAT_FN(TYPE) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
79 INSTALL_CATOP (octave_scalar, octave_ ## TYPE ## _scalar, double ## _ ## TYPE ## _s_s) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
80 INSTALL_CATOP (octave_scalar, octave_ ## TYPE ## _matrix, double ## _ ## TYPE ## _s_m) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
81 INSTALL_CATOP (octave_matrix, octave_ ## TYPE ## _scalar, double ## _ ## TYPE ## _m_s) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
82 INSTALL_CATOP (octave_matrix, octave_ ## TYPE ## _matrix, double ## _ ## TYPE ## _m_m)
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
83
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
84 #define OCTAVE_INT_DOUBLE_CONCAT_FN(TYPE) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
85 DEFNDCATOP_FN2 (TYPE ## _ ## double ## _s_s, TYPE ## _scalar, scalar, , TYPE ## NDArray, TYPE ## _array, array, concat) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
86 DEFNDCATOP_FN2 (TYPE ## _ ## double ## _s_m, TYPE ## _scalar, matrix, , TYPE ## NDArray, TYPE ## _array, array, concat) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
87 DEFNDCATOP_FN2 (TYPE ## _ ## double ## _m_s, TYPE ## _matrix, scalar, , TYPE ## NDArray, TYPE ## _array, array, concat) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
88 DEFNDCATOP_FN2 (TYPE ## _ ## double ## _m_m, TYPE ## _matrix, matrix, , TYPE ## NDArray, TYPE ## _array, array, concat)
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
89
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
90 #define OCTAVE_INSTALL_INT_DOUBLE_CONCAT_FN(TYPE) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
91 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_scalar, TYPE ## _ ## double ## _s_s) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
92 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_matrix, TYPE ## _ ## double ## _s_m) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
93 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_scalar, TYPE ## _ ## double ## _m_s) \
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
94 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_matrix, TYPE ## _ ## double ## _m_m)
b6a9f78f60e9 [project @ 2004-11-10 03:13:26 by jwe]
jwe
parents: 5038
diff changeset
95
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
96 #define OCTAVE_FLOAT_INT_CONCAT_FN(TYPE) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
97 DEFNDCATOP_FN2 (float ## _ ## TYPE ## _s_s, float_scalar, TYPE ## _scalar, TYPE ## NDArray, , float_array, TYPE ## _array, concat) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
98 DEFNDCATOP_FN2 (float ## _ ## TYPE ## _s_m, float_scalar, TYPE ## _matrix, TYPE ## NDArray, , float_array, TYPE ## _array, concat) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
99 DEFNDCATOP_FN2 (float ## _ ## TYPE ## _m_s, float_matrix, TYPE ## _scalar, TYPE ## NDArray, , float_array, TYPE ## _array, concat) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
100 DEFNDCATOP_FN2 (float ## _ ## TYPE ## _m_m, float_matrix, TYPE ## _matrix, TYPE ## NDArray, , float_array, TYPE ## _array, concat)
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
101
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
102 #define OCTAVE_INSTALL_FLOAT_INT_CONCAT_FN(TYPE) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
103 INSTALL_CATOP (octave_float_scalar, octave_ ## TYPE ## _scalar, float ## _ ## TYPE ## _s_s) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
104 INSTALL_CATOP (octave_float_scalar, octave_ ## TYPE ## _matrix, float ## _ ## TYPE ## _s_m) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
105 INSTALL_CATOP (octave_float_matrix, octave_ ## TYPE ## _scalar, float ## _ ## TYPE ## _m_s) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
106 INSTALL_CATOP (octave_float_matrix, octave_ ## TYPE ## _matrix, float ## _ ## TYPE ## _m_m)
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
107
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
108 #define OCTAVE_INT_FLOAT_CONCAT_FN(TYPE) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
109 DEFNDCATOP_FN2 (TYPE ## _ ## float ## _s_s, TYPE ## _scalar, float_scalar, , TYPE ## NDArray, TYPE ## _array, float_array, concat) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
110 DEFNDCATOP_FN2 (TYPE ## _ ## float ## _s_m, TYPE ## _scalar, float_matrix, , TYPE ## NDArray, TYPE ## _array, float_array, concat) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
111 DEFNDCATOP_FN2 (TYPE ## _ ## float ## _m_s, TYPE ## _matrix, float_scalar, , TYPE ## NDArray, TYPE ## _array, float_array, concat) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
112 DEFNDCATOP_FN2 (TYPE ## _ ## float ## _m_m, TYPE ## _matrix, float_matrix, , TYPE ## NDArray, TYPE ## _array, float_array, concat)
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
113
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
114 #define OCTAVE_INSTALL_INT_FLOAT_CONCAT_FN(TYPE) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
115 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_float_scalar, TYPE ## _ ## float ## _s_s) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
116 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_float_matrix, TYPE ## _ ## float ## _s_m) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
117 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_float_scalar, TYPE ## _ ## float ## _m_s) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
118 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_float_matrix, TYPE ## _ ## float ## _m_m)
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
119
5533
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
120 // For compatibility, concatenation with a character always returns a
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
121 // character.
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
122
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
123 #define OCTAVE_CHAR_INT_CONCAT_FN(TYPE) \
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
124 DEFNDCHARCATOP_FN (char ## _ ## TYPE ## _m_s, char_matrix, TYPE ## _scalar, concat) \
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
125 DEFNDCHARCATOP_FN (char ## _ ## TYPE ## _m_m, char_matrix, TYPE ## _matrix, concat)
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
126
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
127 #define OCTAVE_INSTALL_CHAR_INT_CONCAT_FN(TYPE) \
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
128 INSTALL_CATOP (octave_char_matrix_str, octave_ ## TYPE ## _scalar, char ## _ ## TYPE ## _m_s) \
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
129 INSTALL_CATOP (octave_char_matrix_str, octave_ ## TYPE ## _matrix, char ## _ ## TYPE ## _m_m) \
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
130 INSTALL_CATOP (octave_char_matrix_sq_str, octave_ ## TYPE ## _scalar, char ## _ ## TYPE ## _m_s) \
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
131 INSTALL_CATOP (octave_char_matrix_sq_str, octave_ ## TYPE ## _matrix, char ## _ ## TYPE ## _m_m)
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
132
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
133 #define OCTAVE_INT_CHAR_CONCAT_FN(TYPE) \
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
134 DEFNDCHARCATOP_FN (TYPE ## _ ## char ## _s_m, TYPE ## _scalar, char_matrix, concat) \
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
135 DEFNDCHARCATOP_FN (TYPE ## _ ## char ## _m_m, TYPE ## _matrix, char_matrix, concat)
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
136
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
137 #define OCTAVE_INSTALL_INT_CHAR_CONCAT_FN(TYPE) \
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
138 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_char_matrix_str, TYPE ## _ ## char ## _s_m) \
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
139 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_char_matrix_str, TYPE ## _ ## char ## _m_m) \
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
140 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_char_matrix_sq_str, TYPE ## _ ## char ## _s_m) \
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
141 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_char_matrix_sq_str, TYPE ## _ ## char ## _m_m)
667ad2becb63 [project @ 2005-11-10 21:40:48 by jwe]
jwe
parents: 5307
diff changeset
142
4915
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
143 #define OCTAVE_CONCAT_FN(TYPE) \
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
144 DEFNDCATOP_FN (TYPE ## _s_s, TYPE ## _scalar, TYPE ## _scalar, TYPE ## _array, TYPE ## _array, concat) \
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
145 DEFNDCATOP_FN (TYPE ## _s_m, TYPE ## _scalar, TYPE ## _matrix, TYPE ## _array, TYPE ## _array, concat) \
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
146 DEFNDCATOP_FN (TYPE ## _m_s, TYPE ## _matrix, TYPE ## _scalar, TYPE ## _array, TYPE ## _array, concat) \
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
147 DEFNDCATOP_FN (TYPE ## _m_m, TYPE ## _matrix, TYPE ## _matrix, TYPE ## _array, TYPE ## _array, concat)
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
148
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
149 #define OCTAVE_INSTALL_CONCAT_FN(TYPE) \
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
150 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _scalar, TYPE ## _s_s) \
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
151 INSTALL_CATOP (octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _matrix, TYPE ## _s_m) \
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
152 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_ ## TYPE ## _scalar, TYPE ## _m_s) \
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
153 INSTALL_CATOP (octave_ ## TYPE ## _matrix, octave_ ## TYPE ## _matrix, TYPE ## _m_m)
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
154
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
155 #define OCTAVE_S_INT_UNOPS(TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
156 /* scalar unary ops. */ \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
157 \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
158 DEFUNOP_OP (s_not, TYPE ## _scalar, !) \
4965
c0d8e8afa82f [project @ 2004-09-06 20:19:57 by jwe]
jwe
parents: 4964
diff changeset
159 DEFUNOP_OP (s_uplus, TYPE ## _scalar, /* no-op */) \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
160 DEFUNOP (s_uminus, TYPE ## _scalar) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
161 { \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
162 CAST_UNOP_ARG (const octave_ ## TYPE ## _scalar &); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
163 octave_value retval = octave_value (- v. TYPE ## _scalar_value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
164 return retval; \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
165 } \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
166 DEFUNOP_OP (s_transpose, TYPE ## _scalar, /* no-op */) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
167 DEFUNOP_OP (s_hermitian, TYPE ## _scalar, /* no-op */) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
168 \
5829
93785a1b0f97 [project @ 2006-05-23 18:34:10 by jwe]
jwe
parents: 5533
diff changeset
169 DEFNCUNOP_METHOD (s_incr, TYPE ## _scalar, increment) \
93785a1b0f97 [project @ 2006-05-23 18:34:10 by jwe]
jwe
parents: 5533
diff changeset
170 DEFNCUNOP_METHOD (s_decr, TYPE ## _scalar, decrement)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
171
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
172 #define OCTAVE_SS_INT_ARITH_OPS(PFX, T1, T2, T3) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
173 /* scalar by scalar ops. */ \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
174 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
175 DEFINTBINOP_OP (PFX ## _add, T1 ## scalar, T2 ## scalar, +, T3) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
176 DEFINTBINOP_OP (PFX ## _sub, T1 ## scalar, T2 ## scalar, -, T3) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
177 DEFINTBINOP_OP (PFX ## _mul, T1 ## scalar, T2 ## scalar, *, T3) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
178 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
179 DEFBINOP (PFX ## _div, T1 ## scalar, T2 ## scalar) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
180 { \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
181 CAST_BINOP_ARGS (const octave_ ## T1 ## scalar&, const octave_ ## T2 ## scalar&); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
182 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
183 if (! v2.T2 ## scalar_value ()) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
184 gripe_divide_by_zero (); \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
185 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
186 octave_value retval = octave_value (v1.T1 ## scalar_value () / v2.T2 ## scalar_value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
187 return retval; \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
188 } \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
189 \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
190 DEFINTBINOP_FN (PFX ## _pow, T1 ## scalar, T2 ## scalar, xpow, T3, ^) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
191 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
192 DEFBINOP (PFX ## _ldiv, T1 ## scalar, T2 ## scalar) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
193 { \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
194 CAST_BINOP_ARGS (const octave_ ## T1 ## scalar&, const octave_ ## T2 ## scalar&); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
195 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
196 if (! v1.T1 ## scalar_value ()) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
197 gripe_divide_by_zero (); \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
198 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
199 octave_value retval = octave_value (v2.T2 ## scalar_value () / v1.T1 ## scalar_value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
200 return retval; \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
201 } \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
202 \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
203 DEFINTBINOP_OP (PFX ## _el_mul, T1 ## scalar, T2 ## scalar, *, T3) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
204 \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
205 DEFBINOP (PFX ## _el_div, T1 ## scalar, T2 ## scalar) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
206 { \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
207 CAST_BINOP_ARGS (const octave_ ## T1 ## scalar&, const octave_ ## T2 ## scalar&); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
208 \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
209 if (! v2.T2 ## scalar_value ()) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
210 gripe_divide_by_zero (); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
211 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
212 octave_value retval = octave_value (v1.T1 ## scalar_value () / v2.T2 ## scalar_value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
213 return retval; \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
214 } \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
215 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
216 DEFINTBINOP_FN (PFX ## _el_pow, T1 ## scalar, T2 ## scalar, xpow, T3, .^) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
217 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
218 DEFBINOP (PFX ## _el_ldiv, T1 ## scalar, T2 ## scalar) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
219 { \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
220 CAST_BINOP_ARGS (const octave_ ## T1 ## scalar&, const octave_ ## T2 ## scalar&); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
221 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
222 if (! v1.T1 ## scalar_value ()) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
223 gripe_divide_by_zero (); \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
224 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
225 octave_value retval = octave_value (v2.T2 ## scalar_value () / v1.T1 ## scalar_value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
226 return retval; \
19895
19755f4fc851 maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19731
diff changeset
227 }
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
228
5030
160365410ad4 [project @ 2004-09-24 03:22:23 by jwe]
jwe
parents: 4965
diff changeset
229 #define OCTAVE_SS_INT_BOOL_OPS(PFX, T1, T2, Z1, Z2) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
230 DEFBINOP (PFX ## _el_and, T2, T2) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
231 { \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
232 CAST_BINOP_ARGS (const octave_ ## T1 ## scalar&, const octave_ ## T2 ## scalar&); \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
233 \
5030
160365410ad4 [project @ 2004-09-24 03:22:23 by jwe]
jwe
parents: 4965
diff changeset
234 return v1.T1 ## scalar_value () != Z1 && v2.T2 ## scalar_value () != Z2; \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
235 } \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
236 \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
237 DEFBINOP (PFX ## _el_or, T1, T2) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
238 { \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
239 CAST_BINOP_ARGS (const octave_ ## T1 ## scalar&, const octave_ ## T2 ## scalar&); \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
240 \
5030
160365410ad4 [project @ 2004-09-24 03:22:23 by jwe]
jwe
parents: 4965
diff changeset
241 return v1.T1 ## scalar_value () != Z1 || v2.T2 ## scalar_value () != Z2; \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
242 }
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
243
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
244 #define OCTAVE_SS_INT_CMP_OPS(PFX, T1, T2) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
245 DEFBINOP_OP (PFX ## _lt, T1 ## scalar, T2 ## scalar, <) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
246 DEFBINOP_OP (PFX ## _le, T1 ## scalar, T2 ## scalar, <=) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
247 DEFBINOP_OP (PFX ## _eq, T1 ## scalar, T2 ## scalar, ==) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
248 DEFBINOP_OP (PFX ## _ge, T1 ## scalar, T2 ## scalar, >=) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
249 DEFBINOP_OP (PFX ## _gt, T1 ## scalar, T2 ## scalar, >) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
250 DEFBINOP_OP (PFX ## _ne, T1 ## scalar, T2 ## scalar, !=)
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
251
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
252 #define OCTAVE_SS_POW_OPS(T1, T2) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
253 octave_value \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
254 xpow (const octave_ ## T1& a, const octave_ ## T2& b) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
255 { \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
256 return pow (a, b); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
257 } \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
258 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
259 octave_value \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
260 xpow (const octave_ ## T1& a, double b) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
261 { \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
262 return pow (a, b); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
263 } \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
264 \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
265 octave_value \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
266 xpow (double a, const octave_ ## T1& b) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
267 { \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
268 return pow (a, b); \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
269 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
270 \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
271 octave_value \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
272 xpow (const octave_ ## T1& a, float b) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
273 { \
7914
e998e81224b5 Various compilation fixes for MSVC.
John W. Eaton <jwe@octave.org>
parents: 7789
diff changeset
274 return powf (a, b); \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
275 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
276 \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
277 octave_value \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
278 xpow (float a, const octave_ ## T1& b) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
279 { \
7914
e998e81224b5 Various compilation fixes for MSVC.
John W. Eaton <jwe@octave.org>
parents: 7789
diff changeset
280 return powf (a, b); \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
281 }
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
282
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
283 #define OCTAVE_SS_INT_OPS(TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
284 OCTAVE_S_INT_UNOPS (TYPE) \
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
285 OCTAVE_SS_POW_OPS (TYPE, TYPE) \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
286 OCTAVE_SS_INT_ARITH_OPS (ss, TYPE ## _, TYPE ## _, TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
287 OCTAVE_SS_INT_ARITH_OPS (ssx, TYPE ## _, , TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
288 OCTAVE_SS_INT_ARITH_OPS (sxs, , TYPE ## _, TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
289 OCTAVE_SS_INT_ARITH_OPS (ssfx, TYPE ## _, float_, TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
290 OCTAVE_SS_INT_ARITH_OPS (sfxs, float_, TYPE ## _, TYPE) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
291 OCTAVE_SS_INT_CMP_OPS (ss, TYPE ## _, TYPE ## _) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
292 OCTAVE_SS_INT_CMP_OPS (sx, TYPE ## _, ) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
293 OCTAVE_SS_INT_CMP_OPS (xs, , TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
294 OCTAVE_SS_INT_CMP_OPS (sfx, TYPE ## _, float_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
295 OCTAVE_SS_INT_CMP_OPS (fxs, float_, TYPE ## _) \
5030
160365410ad4 [project @ 2004-09-24 03:22:23 by jwe]
jwe
parents: 4965
diff changeset
296 OCTAVE_SS_INT_BOOL_OPS (ss, TYPE ## _, TYPE ## _, octave_ ## TYPE (0), octave_ ## TYPE (0)) \
160365410ad4 [project @ 2004-09-24 03:22:23 by jwe]
jwe
parents: 4965
diff changeset
297 OCTAVE_SS_INT_BOOL_OPS (sx, TYPE ## _, , octave_ ## TYPE (0), 0) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
298 OCTAVE_SS_INT_BOOL_OPS (xs, , TYPE ## _, 0, octave_ ## TYPE (0)) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
299 OCTAVE_SS_INT_BOOL_OPS (sfx, TYPE ## _, float_, octave_ ## TYPE (0), 0) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
300 OCTAVE_SS_INT_BOOL_OPS (fxs, float_, TYPE ## _, 0, octave_ ## TYPE (0))
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
301
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
302 #define OCTAVE_SM_INT_ARITH_OPS(PFX, TS, TM, TI) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
303 /* scalar by matrix ops. */ \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
304 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
305 DEFINTNDBINOP_OP (PFX ## _add, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, +, TI) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
306 DEFINTNDBINOP_OP (PFX ## _sub, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, -, TI) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
307 DEFINTNDBINOP_OP (PFX ## _mul, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, *, TI) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
308 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
309 /* DEFBINOP (PFX ## _div, TS ## scalar, TM ## matrix) */ \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
310 /* { */ \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
311 /* CAST_BINOP_ARGS (const octave_ ## TS ## scalar&, const octave_ ## TM ## matrix&); */ \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
312 /* */ \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
313 /* Matrix m1 = v1.TM ## matrix_value (); */ \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
314 /* Matrix m2 = v2.TM ## matrix_value (); */ \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
315 /* */ \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
316 /* return octave_value (xdiv (m1, m2)); */ \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
317 /* } */ \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
318 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
319 /* DEFBINOP_FN (PFX ## _pow, TS ## scalar, TM ## matrix, xpow) */ \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
320 \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
321 DEFBINOP (PFX ## _ldiv, TS ## scalar, TM ## matrix) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
322 { \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
323 CAST_BINOP_ARGS (const octave_ ## TS ## scalar&, const octave_ ## TM ## matrix&); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
324 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
325 if (! v1.TS ## scalar_value ()) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
326 gripe_divide_by_zero (); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
327 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
328 octave_value retval = octave_value (v2.TS ## scalar_value () / v1.TS ## scalar_value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
329 return retval; \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
330 } \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
331 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
332 DEFINTNDBINOP_OP (PFX ## _el_mul, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, *, TI) \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
333 DEFBINOP (PFX ## _el_div, TS ## scalar, TM ## matrix) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
334 { \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
335 CAST_BINOP_ARGS (const octave_ ## TS ## scalar&, const octave_ ## TM ## matrix&); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
336 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
337 octave_value retval = octave_value (v1.TS ## scalar_value () / v2.TM ## array_value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
338 return retval; \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
339 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
340 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
341 DEFINTNDBINOP_FN (PFX ## _el_pow, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, elem_xpow, TI, .^) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
342 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
343 DEFBINOP (PFX ## _el_ldiv, TS ## scalar, TM ## matrix) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
344 { \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
345 CAST_BINOP_ARGS (const octave_ ## TS ## scalar&, const octave_ ## TM ## matrix&); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
346 \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
347 if (! v1.TS ## scalar_value ()) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
348 gripe_divide_by_zero (); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
349 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
350 octave_value retval = octave_value (v2.TM ## array_value () / v1.TS ## scalar_value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
351 return retval; \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
352 }
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
353
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
354 #define OCTAVE_SM_INT_CMP_OPS(PFX, TS, TM) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
355 DEFNDBINOP_FN (PFX ## _lt, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, mx_el_lt) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
356 DEFNDBINOP_FN (PFX ## _le, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, mx_el_le) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
357 DEFNDBINOP_FN (PFX ## _eq, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, mx_el_eq) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
358 DEFNDBINOP_FN (PFX ## _ge, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, mx_el_ge) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
359 DEFNDBINOP_FN (PFX ## _gt, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, mx_el_gt) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
360 DEFNDBINOP_FN (PFX ## _ne, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, mx_el_ne)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
361
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
362 #define OCTAVE_SM_INT_BOOL_OPS(PFX, TS, TM) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
363 DEFNDBINOP_FN (PFX ## _el_and, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, mx_el_and) \
8982
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
364 DEFNDBINOP_FN (PFX ## _el_or, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, mx_el_or) \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
365 DEFNDBINOP_FN (PFX ## _el_and_not, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, mx_el_and_not) \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
366 DEFNDBINOP_FN (PFX ## _el_or_not, TS ## scalar, TM ## matrix, TS ## scalar, TM ## array, mx_el_or_not)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
367
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
368 #define OCTAVE_SM_POW_OPS(T1, T2) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
369 octave_value \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
370 elem_xpow (const octave_ ## T1& a, const T2 ## NDArray& b) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
371 { \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
372 T2 ## NDArray result (b.dims ()); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
373 for (int i = 0; i < b.length (); i++) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
374 { \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
375 OCTAVE_QUIT; \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
376 result (i) = pow (a, b(i)); \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
377 } \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
378 return octave_value (result); \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
379 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
380 \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
381 octave_value \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
382 elem_xpow (const octave_ ## T1& a, const NDArray& b) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
383 { \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
384 T1 ## NDArray result (b.dims ()); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
385 for (int i = 0; i < b.length (); i++) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
386 { \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
387 OCTAVE_QUIT; \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
388 result (i) = pow (a, b(i)); \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
389 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
390 return octave_value (result); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
391 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
392 \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
393 octave_value \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
394 elem_xpow (double a, const T2 ## NDArray& b) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
395 { \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
396 T2 ## NDArray result (b.dims ()); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
397 for (int i = 0; i < b.length (); i++) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
398 { \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
399 OCTAVE_QUIT; \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
400 result (i) = pow (a, b(i)); \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
401 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
402 return octave_value (result); \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
403 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
404 \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
405 octave_value \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
406 elem_xpow (const octave_ ## T1& a, const FloatNDArray& b) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
407 { \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
408 T1 ## NDArray result (b.dims ()); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
409 for (int i = 0; i < b.length (); i++) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
410 { \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
411 OCTAVE_QUIT; \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
412 result (i) = powf (a, b(i)); \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
413 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
414 return octave_value (result); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
415 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
416 \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
417 octave_value \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
418 elem_xpow (float a, const T2 ## NDArray& b) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
419 { \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
420 T2 ## NDArray result (b.dims ()); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
421 for (int i = 0; i < b.length (); i++) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
422 { \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
423 OCTAVE_QUIT; \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
424 result (i) = powf (a, b(i)); \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
425 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
426 return octave_value (result); \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
427 }
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
428
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
429
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
430 #define OCTAVE_SM_CONV(TS, TM) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
431 DEFCONV (TS ## s_ ## TM ## m_conv, TM ## scalar, TM ## matrix) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
432 { \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
433 CAST_CONV_ARG (const octave_ ## TS ## scalar&); \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
434 \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
435 return new octave_ ## TM ## matrix (v.TM ## array_value ()); \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
436 }
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
437
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
438 #define OCTAVE_SM_INT_OPS(TYPE) \
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
439 OCTAVE_SM_POW_OPS (TYPE, TYPE) \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
440 OCTAVE_SM_INT_ARITH_OPS (sm, TYPE ## _, TYPE ## _, TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
441 OCTAVE_SM_INT_ARITH_OPS (smx, TYPE ## _, , TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
442 OCTAVE_SM_INT_ARITH_OPS (sxm, , TYPE ## _, TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
443 OCTAVE_SM_INT_ARITH_OPS (smfx, TYPE ## _, float_, TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
444 OCTAVE_SM_INT_ARITH_OPS (sfxm, float_, TYPE ## _, TYPE) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
445 OCTAVE_SM_INT_CMP_OPS (sm, TYPE ## _, TYPE ## _) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
446 OCTAVE_SM_INT_CMP_OPS (xm, , TYPE ## _) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
447 OCTAVE_SM_INT_CMP_OPS (smx, TYPE ## _, ) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
448 OCTAVE_SM_INT_CMP_OPS (fxm, float_, TYPE ## _) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
449 OCTAVE_SM_INT_CMP_OPS (smfx, TYPE ## _, float_) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
450 OCTAVE_SM_INT_BOOL_OPS (sm, TYPE ## _, TYPE ## _) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
451 OCTAVE_SM_INT_BOOL_OPS (xm, , TYPE ## _) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
452 OCTAVE_SM_INT_BOOL_OPS (smx, TYPE ## _, ) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
453 OCTAVE_SM_INT_BOOL_OPS (fxm, float_, TYPE ## _) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
454 OCTAVE_SM_INT_BOOL_OPS (smfx, TYPE ## _, float_) \
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
455 OCTAVE_SM_CONV (TYPE ## _, TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
456 OCTAVE_SM_CONV (TYPE ## _, complex_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
457 OCTAVE_SM_CONV (TYPE ## _, float_complex_)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
458
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
459 #define OCTAVE_MS_INT_ARITH_OPS(PFX, TM, TS, TI) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
460 /* matrix by scalar ops. */ \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
461 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
462 DEFINTNDBINOP_OP (PFX ## _add, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, +, TI) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
463 DEFINTNDBINOP_OP (PFX ## _sub, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, -, TI) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
464 DEFINTNDBINOP_OP (PFX ## _mul, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, *, TI) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
465 \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
466 DEFBINOP (PFX ## _div, TM ## matrix, TS ## scalar) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
467 { \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
468 CAST_BINOP_ARGS (const octave_ ## TM ## matrix&, const octave_ ## TS ## scalar&); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
469 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
470 if (! v2.TS ## scalar_value ()) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
471 gripe_divide_by_zero (); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
472 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
473 octave_value retval = octave_value (v1.TM ## array_value () / v2.TS ## scalar_value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
474 return retval; \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
475 } \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
476 \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
477 /* DEFBINOP_FN (PFX ## _pow, TM ## matrix, TS ## scalar, xpow) */ \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
478 \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
479 /* DEFBINOP (PFX ## _ldiv, TM ## matrix, TS ## scalar) */ \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
480 /* { */ \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
481 /* CAST_BINOP_ARGS (const octave_ ## TM ## matrix&, const octave_ ## TS ## scalar&); */ \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
482 /* */ \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
483 /* Matrix m1 = v1.TM ## matrix_value (); */ \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
484 /* Matrix m2 = v2.TM ## matrix_value (); */ \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
485 /* */ \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
486 /* return octave_value (xleftdiv (m1, m2)); */ \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
487 /* } */ \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
488 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
489 DEFINTNDBINOP_OP (PFX ## _el_mul, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, *, TI) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
490 \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
491 DEFBINOP (PFX ## _el_div, TM ## matrix, TS ## scalar) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
492 { \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
493 CAST_BINOP_ARGS (const octave_ ## TM ## matrix&, const octave_ ## TS ## scalar&); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
494 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
495 if (! v2.TS ## scalar_value ()) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
496 gripe_divide_by_zero (); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
497 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
498 octave_value retval = octave_value (v1.TM ## array_value () / v2.TS ## scalar_value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
499 return retval; \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
500 } \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
501 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
502 DEFINTNDBINOP_FN (PFX ## _el_pow, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, elem_xpow, TI, .^) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
503 \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
504 DEFBINOP (PFX ## _el_ldiv, TM ## matrix, TS ## scalar) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
505 { \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
506 CAST_BINOP_ARGS (const octave_ ## TM ## matrix&, const octave_ ## TS ## scalar&); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
507 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
508 octave_value retval = v2.TS ## scalar_value () / v1.TM ## array_value (); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
509 return retval; \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
510 }
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
511
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
512 #define OCTAVE_MS_INT_CMP_OPS(PFX, TM, TS) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
513 DEFNDBINOP_FN (PFX ## _lt, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, mx_el_lt) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
514 DEFNDBINOP_FN (PFX ## _le, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, mx_el_le) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
515 DEFNDBINOP_FN (PFX ## _eq, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, mx_el_eq) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
516 DEFNDBINOP_FN (PFX ## _ge, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, mx_el_ge) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
517 DEFNDBINOP_FN (PFX ## _gt, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, mx_el_gt) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
518 DEFNDBINOP_FN (PFX ## _ne, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, mx_el_ne)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
519
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
520 #define OCTAVE_MS_INT_BOOL_OPS(PFX, TM, TS) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
521 DEFNDBINOP_FN (PFX ## _el_and, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, mx_el_and) \
8982
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
522 DEFNDBINOP_FN (PFX ## _el_or, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, mx_el_or) \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
523 DEFNDBINOP_FN (PFX ## _el_not_and, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, mx_el_not_and) \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
524 DEFNDBINOP_FN (PFX ## _el_not_or, TM ## matrix, TS ## scalar, TM ## array, TS ## scalar, mx_el_not_or)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
525
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
526 #define OCTAVE_MS_INT_ASSIGN_OPS(PFX, TM, TS, TE) \
8679
280fae940bb0 optimize scalar indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 8150
diff changeset
527 DEFNDASSIGNOP_FN (PFX ## _assign, TM ## matrix, TS ## scalar, TM ## scalar, assign)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
528
9546
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
529 #define OCTAVE_MS_INT_ASSIGNEQ_OPS(PFX, TM) \
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
530 DEFNDASSIGNOP_OP (PFX ## _assign_add, TM ## matrix, TM ## scalar, TM ## scalar, +=) \
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
531 DEFNDASSIGNOP_OP (PFX ## _assign_sub, TM ## matrix, TM ## scalar, TM ## scalar, -=) \
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
532 DEFNDASSIGNOP_OP (PFX ## _assign_mul, TM ## matrix, TM ## scalar, TM ## scalar, *=) \
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
533 DEFNDASSIGNOP_OP (PFX ## _assign_div, TM ## matrix, TM ## scalar, TM ## scalar, /=)
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
534
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
535 #define OCTAVE_MS_POW_OPS(T1, T2) \
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
536 octave_value elem_xpow (T1 ## NDArray a, octave_ ## T2 b) \
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
537 { \
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
538 T1 ## NDArray result (a.dims ()); \
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
539 for (int i = 0; i < a.length (); i++) \
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
540 { \
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
541 OCTAVE_QUIT; \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
542 result (i) = pow (a(i), b); \
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
543 } \
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
544 return octave_value (result); \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
545 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
546 \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
547 octave_value elem_xpow (T1 ## NDArray a, double b) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
548 { \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
549 T1 ## NDArray result (a.dims ()); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
550 for (int i = 0; i < a.length (); i++) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
551 { \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
552 OCTAVE_QUIT; \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
553 result (i) = pow (a(i), b); \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
554 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
555 return octave_value (result); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
556 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
557 \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
558 octave_value elem_xpow (NDArray a, octave_ ## T2 b) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
559 { \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
560 T2 ## NDArray result (a.dims ()); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
561 for (int i = 0; i < a.length (); i++) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
562 { \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
563 OCTAVE_QUIT; \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
564 result (i) = pow (a(i), b); \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
565 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
566 return octave_value (result); \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
567 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
568 \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
569 octave_value elem_xpow (T1 ## NDArray a, float b) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
570 { \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
571 T1 ## NDArray result (a.dims ()); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
572 for (int i = 0; i < a.length (); i++) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
573 { \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
574 OCTAVE_QUIT; \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
575 result (i) = powf (a(i), b); \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
576 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
577 return octave_value (result); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
578 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
579 \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
580 octave_value elem_xpow (FloatNDArray a, octave_ ## T2 b) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
581 { \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
582 T2 ## NDArray result (a.dims ()); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
583 for (int i = 0; i < a.length (); i++) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
584 { \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
585 OCTAVE_QUIT; \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
586 result (i) = powf (a(i), b); \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
587 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
588 return octave_value (result); \
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
589 }
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
590
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
591
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
592 #define OCTAVE_MS_INT_OPS(TYPE) \
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
593 OCTAVE_MS_POW_OPS (TYPE, TYPE) \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
594 OCTAVE_MS_INT_ARITH_OPS (ms, TYPE ## _, TYPE ## _, TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
595 OCTAVE_MS_INT_ARITH_OPS (msx, TYPE ## _, , TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
596 OCTAVE_MS_INT_ARITH_OPS (mxs, , TYPE ## _, TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
597 OCTAVE_MS_INT_ARITH_OPS (msfx, TYPE ## _, float_, TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
598 OCTAVE_MS_INT_ARITH_OPS (mfxs, float_, TYPE ## _, TYPE) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
599 OCTAVE_MS_INT_CMP_OPS (ms, TYPE ## _, TYPE ## _) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
600 OCTAVE_MS_INT_CMP_OPS (mx, TYPE ## _, ) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
601 OCTAVE_MS_INT_CMP_OPS (mxs, , TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
602 OCTAVE_MS_INT_CMP_OPS (mfx, TYPE ## _, float_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
603 OCTAVE_MS_INT_CMP_OPS (mfxs, float_, TYPE ## _) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
604 OCTAVE_MS_INT_BOOL_OPS (ms, TYPE ## _, TYPE ## _) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
605 OCTAVE_MS_INT_BOOL_OPS (mx, TYPE ## _, ) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
606 OCTAVE_MS_INT_BOOL_OPS (mxs, , TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
607 OCTAVE_MS_INT_BOOL_OPS (mfx, TYPE ## _, float_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
608 OCTAVE_MS_INT_BOOL_OPS (mfxs, float_, TYPE ## _) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
609 OCTAVE_MS_INT_ASSIGN_OPS (ms, TYPE ## _, TYPE ## _, TYPE ## _) \
9546
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
610 OCTAVE_MS_INT_ASSIGNEQ_OPS (mse, TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
611 OCTAVE_MS_INT_ASSIGN_OPS (mx, TYPE ## _, , ) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
612 OCTAVE_MS_INT_ASSIGN_OPS (mfx, TYPE ## _, float_, float_)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
613
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
614 #define OCTAVE_M_INT_UNOPS(TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
615 /* matrix unary ops. */ \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
616 \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
617 DEFNDUNOP_OP (m_not, TYPE ## _matrix, TYPE ## _array, !) \
4965
c0d8e8afa82f [project @ 2004-09-06 20:19:57 by jwe]
jwe
parents: 4964
diff changeset
618 DEFNDUNOP_OP (m_uplus, TYPE ## _matrix, TYPE ## _array, /* no-op */) \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
619 DEFUNOP (m_uminus, TYPE ## _matrix) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
620 { \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
621 CAST_UNOP_ARG (const octave_ ## TYPE ## _matrix &); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
622 octave_value retval = octave_value (- v. TYPE ## _array_value ()); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
623 return retval; \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
624 } \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
625 \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
626 DEFUNOP (m_transpose, TYPE ## _matrix) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
627 { \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
628 CAST_UNOP_ARG (const octave_ ## TYPE ## _matrix&); \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
629 \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
630 if (v.ndims () > 2) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
631 { \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
632 error ("transpose not defined for N-d objects"); \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
633 return octave_value (); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
634 } \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
635 else \
14846
460a3c6d8bf1 maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
636 return octave_value (v.TYPE ## _array_value ().transpose ()); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
637 } \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
638 \
5829
93785a1b0f97 [project @ 2006-05-23 18:34:10 by jwe]
jwe
parents: 5533
diff changeset
639 DEFNCUNOP_METHOD (m_incr, TYPE ## _matrix, increment) \
9607
1be3c73ed7b5 reuse temporary arrays in nested expressions
Jaroslav Hajek <highegg@gmail.com>
parents: 9557
diff changeset
640 DEFNCUNOP_METHOD (m_decr, TYPE ## _matrix, decrement) \
1be3c73ed7b5 reuse temporary arrays in nested expressions
Jaroslav Hajek <highegg@gmail.com>
parents: 9557
diff changeset
641 DEFNCUNOP_METHOD (m_changesign, TYPE ## _matrix, changesign)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
642
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
643 #define OCTAVE_MM_INT_ARITH_OPS(PFX, T1, T2, T3) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
644 /* matrix by matrix ops. */ \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
645 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
646 DEFINTNDBINOP_OP (PFX ## _add, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, +, T3) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
647 DEFINTNDBINOP_OP (PFX ## _sub, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, -, T3) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
648 \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
649 /* DEFBINOP_OP (PFX ## _mul, T1 ## matrix, T2 ## matrix, *) */ \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
650 /* DEFBINOP_FN (PFX ## _div, T1 ## matrix, T2 ## matrix, xdiv) */ \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
651 \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
652 DEFBINOPX (PFX ## _pow, T1 ## matrix, T2 ## matrix) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
653 { \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
654 error ("can't do A ^ B for A and B both matrices"); \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
655 return octave_value (); \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
656 } \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
657 \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
658 /* DEFBINOP_FN (PFX ## _ldiv, T1 ## matrix, T2 ## matrix, xleftdiv) */ \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
659 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
660 DEFINTNDBINOP_FN (PFX ## _el_mul, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, product, T3, .*) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
661 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
662 DEFINTNDBINOP_FN (PFX ## _el_div, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, quotient, T3, ./) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
663 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
664 DEFINTNDBINOP_FN (PFX ## _el_pow, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, elem_xpow, T3, .^) \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
665 \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
666 DEFBINOP (PFX ## _el_ldiv, T1 ## matrix, T2 ## matrix) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
667 { \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
668 CAST_BINOP_ARGS (const octave_ ## T1 ## matrix&, const octave_ ## T2 ## matrix&); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
669 \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
670 octave_value retval = octave_value (quotient (v2.T2 ## array_value (), v1.T1 ## array_value ())); \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
671 return retval; \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
672 }
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
673
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
674 #define OCTAVE_MM_INT_CMP_OPS(PFX, T1, T2) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
675 DEFNDBINOP_FN (PFX ## _lt, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, mx_el_lt) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
676 DEFNDBINOP_FN (PFX ## _le, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, mx_el_le) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
677 DEFNDBINOP_FN (PFX ## _eq, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, mx_el_eq) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
678 DEFNDBINOP_FN (PFX ## _ge, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, mx_el_ge) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
679 DEFNDBINOP_FN (PFX ## _gt, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, mx_el_gt) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
680 DEFNDBINOP_FN (PFX ## _ne, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, mx_el_ne)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
681
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
682 #define OCTAVE_MM_INT_BOOL_OPS(PFX, T1, T2) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
683 DEFNDBINOP_FN (PFX ## _el_and, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, mx_el_and) \
8982
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
684 DEFNDBINOP_FN (PFX ## _el_or, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, mx_el_or) \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
685 DEFNDBINOP_FN (PFX ## _el_not_and, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, mx_el_not_and) \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
686 DEFNDBINOP_FN (PFX ## _el_not_or, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, mx_el_not_or) \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
687 DEFNDBINOP_FN (PFX ## _el_and_not, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, mx_el_and_not) \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
688 DEFNDBINOP_FN (PFX ## _el_or_not, T1 ## matrix, T2 ## matrix, T1 ## array, T2 ## array, mx_el_or_not)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
689
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
690 #define OCTAVE_MM_INT_ASSIGN_OPS(PFX, TLHS, TRHS, TE) \
8679
280fae940bb0 optimize scalar indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 8150
diff changeset
691 DEFNDASSIGNOP_FN (PFX ## _assign, TLHS ## matrix, TRHS ## matrix, TLHS ## array, assign)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
692
9546
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
693 #define OCTAVE_MM_INT_ASSIGNEQ_OPS(PFX, TM) \
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
694 DEFNDASSIGNOP_OP (PFX ## _assign_add, TM ## matrix, TM ## matrix, TM ## array, +=) \
9557
3a1dd361f978 optimize .*=, ./= operators
Jaroslav Hajek <highegg@gmail.com>
parents: 9546
diff changeset
695 DEFNDASSIGNOP_OP (PFX ## _assign_sub, TM ## matrix, TM ## matrix, TM ## array, -=) \
3a1dd361f978 optimize .*=, ./= operators
Jaroslav Hajek <highegg@gmail.com>
parents: 9546
diff changeset
696 DEFNDASSIGNOP_FNOP (PFX ## _assign_el_mul, TM ## matrix, TM ## matrix, TM ## array, product_eq) \
3a1dd361f978 optimize .*=, ./= operators
Jaroslav Hajek <highegg@gmail.com>
parents: 9546
diff changeset
697 DEFNDASSIGNOP_FNOP (PFX ## _assign_el_div, TM ## matrix, TM ## matrix, TM ## array, quotient_eq)
9546
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
698
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
699 #define OCTAVE_MM_POW_OPS(T1, T2) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
700 octave_value \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
701 elem_xpow (const T1 ## NDArray& a, const T2 ## NDArray& b) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
702 { \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
703 dim_vector a_dims = a.dims (); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
704 dim_vector b_dims = b.dims (); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
705 if (a_dims != b_dims) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
706 { \
14056
c3d401562410 allow warning (or error) for automatic bsxfun
John W. Eaton <jwe@octave.org>
parents: 13012
diff changeset
707 if (is_valid_bsxfun ("operator .^", a_dims, b_dims)) \
13005
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
708 { \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
709 return bsxfun_pow (a, b); \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
710 } \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
711 else \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
712 { \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
713 gripe_nonconformant ("operator .^", a_dims, b_dims); \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
714 return octave_value (); \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
715 } \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
716 } \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
717 T1 ## NDArray result (a_dims); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
718 for (int i = 0; i < a.length (); i++) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
719 { \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
720 OCTAVE_QUIT; \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
721 result (i) = pow (a(i), b(i)); \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
722 } \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
723 return octave_value (result); \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
724 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
725 \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
726 octave_value \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
727 elem_xpow (const T1 ## NDArray& a, const NDArray& b) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
728 { \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
729 dim_vector a_dims = a.dims (); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
730 dim_vector b_dims = b.dims (); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
731 if (a_dims != b_dims) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
732 { \
14056
c3d401562410 allow warning (or error) for automatic bsxfun
John W. Eaton <jwe@octave.org>
parents: 13012
diff changeset
733 if (is_valid_bsxfun ("operator .^", a_dims, b_dims)) \
13005
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
734 { \
13012
15eefbd9d4e8 Implement a few missing automatic bsxfun power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 13005
diff changeset
735 return bsxfun_pow (a, b); \
13005
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
736 } \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
737 else \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
738 { \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
739 gripe_nonconformant ("operator .^", a_dims, b_dims); \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
740 return octave_value (); \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
741 } \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
742 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
743 T1 ## NDArray result (a_dims); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
744 for (int i = 0; i < a.length (); i++) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
745 { \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
746 OCTAVE_QUIT; \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
747 result (i) = pow (a(i), b(i)); \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
748 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
749 return octave_value (result); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
750 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
751 \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
752 octave_value \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
753 elem_xpow (const NDArray& a, const T2 ## NDArray& b) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
754 { \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
755 dim_vector a_dims = a.dims (); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
756 dim_vector b_dims = b.dims (); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
757 if (a_dims != b_dims) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
758 { \
14056
c3d401562410 allow warning (or error) for automatic bsxfun
John W. Eaton <jwe@octave.org>
parents: 13012
diff changeset
759 if (is_valid_bsxfun ("operator .^", a_dims, b_dims)) \
13005
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
760 { \
13012
15eefbd9d4e8 Implement a few missing automatic bsxfun power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 13005
diff changeset
761 return bsxfun_pow (a, b); \
13005
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
762 } \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
763 else \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
764 { \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
765 gripe_nonconformant ("operator .^", a_dims, b_dims); \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
766 return octave_value (); \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
767 } \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
768 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
769 T2 ## NDArray result (a_dims); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
770 for (int i = 0; i < a.length (); i++) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
771 { \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
772 OCTAVE_QUIT; \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
773 result (i) = pow (a(i), b(i)); \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
774 } \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
775 return octave_value (result); \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
776 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
777 \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
778 octave_value \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
779 elem_xpow (const T1 ## NDArray& a, const FloatNDArray& b) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
780 { \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
781 dim_vector a_dims = a.dims (); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
782 dim_vector b_dims = b.dims (); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
783 if (a_dims != b_dims) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
784 { \
14056
c3d401562410 allow warning (or error) for automatic bsxfun
John W. Eaton <jwe@octave.org>
parents: 13012
diff changeset
785 if (is_valid_bsxfun ("operator .^", a_dims, b_dims)) \
13005
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
786 { \
13012
15eefbd9d4e8 Implement a few missing automatic bsxfun power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 13005
diff changeset
787 return bsxfun_pow (a, b); \
13005
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
788 } \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
789 else \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
790 { \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
791 gripe_nonconformant ("operator .^", a_dims, b_dims); \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
792 return octave_value (); \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
793 } \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
794 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
795 T1 ## NDArray result (a_dims); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
796 for (int i = 0; i < a.length (); i++) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
797 { \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
798 OCTAVE_QUIT; \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
799 result (i) = powf (a(i), b(i)); \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
800 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
801 return octave_value (result); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
802 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
803 \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
804 octave_value \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
805 elem_xpow (const FloatNDArray& a, const T2 ## NDArray& b) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
806 { \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
807 dim_vector a_dims = a.dims (); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
808 dim_vector b_dims = b.dims (); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
809 if (a_dims != b_dims) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
810 { \
14056
c3d401562410 allow warning (or error) for automatic bsxfun
John W. Eaton <jwe@octave.org>
parents: 13012
diff changeset
811 if (is_valid_bsxfun ("operator .^", a_dims, b_dims)) \
13005
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
812 { \
13012
15eefbd9d4e8 Implement a few missing automatic bsxfun power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 13005
diff changeset
813 return bsxfun_pow (a, b); \
13005
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
814 } \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
815 else \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
816 { \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
817 gripe_nonconformant ("operator .^", a_dims, b_dims); \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
818 return octave_value (); \
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11523
diff changeset
819 } \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
820 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
821 T2 ## NDArray result (a_dims); \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
822 for (int i = 0; i < a.length (); i++) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
823 { \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
824 OCTAVE_QUIT; \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
825 result (i) = powf (a(i), b(i)); \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
826 } \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
827 return octave_value (result); \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
828 }
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
829
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
830
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
831 #define OCTAVE_MM_CONV(T1, T2) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
832 DEFCONV (T1 ## m_ ## T2 ## m_conv, T1 ## matrix, T2 ## matrix) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
833 { \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
834 CAST_CONV_ARG (const octave_ ## T1 ## matrix&); \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
835 \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
836 return new octave_ ## T2 ## matrix (v.T2 ## array_value ()); \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
837 }
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
838
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
839 #define OCTAVE_MM_INT_OPS(TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
840 OCTAVE_M_INT_UNOPS (TYPE) \
4952
bfd57b466752 [project @ 2004-09-01 00:49:05 by jwe]
jwe
parents: 4915
diff changeset
841 OCTAVE_MM_POW_OPS (TYPE, TYPE) \
8039
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
842 OCTAVE_MM_INT_ARITH_OPS (mm, TYPE ## _, TYPE ## _, TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
843 OCTAVE_MM_INT_ARITH_OPS (mmx, TYPE ## _, , TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
844 OCTAVE_MM_INT_ARITH_OPS (mxm, , TYPE ## _, TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
845 OCTAVE_MM_INT_ARITH_OPS (mmfx, TYPE ## _, float_, TYPE) \
cd90e2842080 Add additional integer math and conversion warnings, set their default state to be off and add the intwarning function
David Bateman <dbateman@free.fr>
parents: 7914
diff changeset
846 OCTAVE_MM_INT_ARITH_OPS (mfxm, float_, TYPE ## _, TYPE) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
847 OCTAVE_MM_INT_CMP_OPS (mm, TYPE ## _, TYPE ## _) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
848 OCTAVE_MM_INT_CMP_OPS (mmx, TYPE ## _, ) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
849 OCTAVE_MM_INT_CMP_OPS (mfxm, float_, TYPE ## _) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
850 OCTAVE_MM_INT_CMP_OPS (mmfx, TYPE ## _, float_) \
5038
fdfce0dec36b [project @ 2004-09-24 17:46:18 by jwe]
jwe
parents: 5030
diff changeset
851 OCTAVE_MM_INT_CMP_OPS (mxm, , TYPE ## _) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
852 OCTAVE_MM_INT_BOOL_OPS (mm, TYPE ## _, TYPE ## _) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
853 OCTAVE_MM_INT_BOOL_OPS (mmx, TYPE ## _, ) \
5038
fdfce0dec36b [project @ 2004-09-24 17:46:18 by jwe]
jwe
parents: 5030
diff changeset
854 OCTAVE_MM_INT_BOOL_OPS (mxm, , TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
855 OCTAVE_MM_INT_BOOL_OPS (mmfx, TYPE ## _, float_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
856 OCTAVE_MM_INT_BOOL_OPS (mfxm, float_, TYPE ## _) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
857 OCTAVE_MM_INT_ASSIGN_OPS (mm, TYPE ## _, TYPE ## _, TYPE ## _) \
9546
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
858 OCTAVE_MM_INT_ASSIGNEQ_OPS (mme, TYPE ## _) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
859 OCTAVE_MM_INT_ASSIGN_OPS (mmx, TYPE ## _, , ) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
860 OCTAVE_MM_INT_ASSIGN_OPS (mmfx, TYPE ## _, float_, float_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
861 OCTAVE_MM_CONV(TYPE ## _, complex_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
862 OCTAVE_MM_CONV(TYPE ## _, float_complex_)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
863
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
864 #define OCTAVE_RE_INT_ASSIGN_OPS(TYPE) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
865 DEFNDASSIGNOP_FN (TYPE ## ms_assign, matrix, TYPE ## _scalar, array, assign) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
866 DEFNDASSIGNOP_FN (TYPE ## mm_assign, matrix, TYPE ## _matrix, array, assign)
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
867
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
868 #define OCTAVE_FLT_RE_INT_ASSIGN_OPS(TYPE) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
869 DEFNDASSIGNOP_FN (TYPE ## fms_assign, float_matrix, TYPE ## _scalar, float_array, assign) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
870 DEFNDASSIGNOP_FN (TYPE ## fmm_assign, float_matrix, TYPE ## _matrix, float_array, assign)
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
871
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
872 #define OCTAVE_CX_INT_ASSIGN_OPS(TYPE) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
873 DEFNDASSIGNOP_FN (TYPE ## cms_assign, complex_matrix, TYPE ## _scalar, complex_array, assign) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
874 DEFNDASSIGNOP_FN (TYPE ## cmm_assign, complex_matrix, TYPE ## _matrix, complex_array, assign)
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
875
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
876 #define OCTAVE_FLT_CX_INT_ASSIGN_OPS(TYPE) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
877 DEFNDASSIGNOP_FN (TYPE ## fcms_assign, float_complex_matrix, TYPE ## _scalar, float_complex_array, assign) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
878 DEFNDASSIGNOP_FN (TYPE ## fcmm_assign, float_complex_matrix, TYPE ## _matrix, float_complex_array, assign)
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
879
8150
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8039
diff changeset
880 #define OCTAVE_INT_NULL_ASSIGN_OPS(TYPE) \
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8039
diff changeset
881 DEFNULLASSIGNOP_FN (TYPE ## null_assign, TYPE ## _matrix, delete_elements)
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8039
diff changeset
882
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
883 #define OCTAVE_INT_OPS(TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
884 OCTAVE_SS_INT_OPS (TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
885 OCTAVE_SM_INT_OPS (TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
886 OCTAVE_MS_INT_OPS (TYPE) \
4915
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
887 OCTAVE_MM_INT_OPS (TYPE) \
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
888 OCTAVE_CONCAT_FN (TYPE) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
889 OCTAVE_RE_INT_ASSIGN_OPS (TYPE) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
890 OCTAVE_FLT_RE_INT_ASSIGN_OPS (TYPE) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
891 OCTAVE_CX_INT_ASSIGN_OPS (TYPE) \
8150
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8039
diff changeset
892 OCTAVE_FLT_CX_INT_ASSIGN_OPS (TYPE) \
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8039
diff changeset
893 OCTAVE_INT_NULL_ASSIGN_OPS(TYPE)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
894
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
895 #define OCTAVE_INSTALL_S_INT_UNOPS(TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
896 INSTALL_UNOP (op_not, octave_ ## TYPE ## _scalar, s_not); \
4965
c0d8e8afa82f [project @ 2004-09-06 20:19:57 by jwe]
jwe
parents: 4964
diff changeset
897 INSTALL_UNOP (op_uplus, octave_ ## TYPE ## _scalar, s_uplus); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
898 INSTALL_UNOP (op_uminus, octave_ ## TYPE ## _scalar, s_uminus); \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
899 INSTALL_UNOP (op_transpose, octave_ ## TYPE ## _scalar, s_transpose); \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
900 INSTALL_UNOP (op_hermitian, octave_ ## TYPE ## _scalar, s_hermitian); \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
901 \
5829
93785a1b0f97 [project @ 2006-05-23 18:34:10 by jwe]
jwe
parents: 5533
diff changeset
902 INSTALL_NCUNOP (op_incr, octave_ ## TYPE ## _scalar, s_incr); \
93785a1b0f97 [project @ 2006-05-23 18:34:10 by jwe]
jwe
parents: 5533
diff changeset
903 INSTALL_NCUNOP (op_decr, octave_ ## TYPE ## _scalar, s_decr);
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
904
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
905 #define OCTAVE_INSTALL_SS_INT_ARITH_OPS(PFX, T1, T2) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
906 INSTALL_BINOP (op_add, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _add); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
907 INSTALL_BINOP (op_sub, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _sub); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
908 INSTALL_BINOP (op_mul, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _mul); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
909 INSTALL_BINOP (op_div, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _div); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
910 INSTALL_BINOP (op_pow, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _pow); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
911 INSTALL_BINOP (op_ldiv, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _ldiv); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
912 INSTALL_BINOP (op_el_mul, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _el_mul); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
913 INSTALL_BINOP (op_el_div, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _el_div); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
914 INSTALL_BINOP (op_el_pow, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _el_pow); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
915 INSTALL_BINOP (op_el_ldiv, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _el_ldiv);
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
916
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
917 #define OCTAVE_INSTALL_SS_INT_CMP_OPS(PFX, T1, T2) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
918 INSTALL_BINOP (op_lt, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _lt); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
919 INSTALL_BINOP (op_le, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _le); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
920 INSTALL_BINOP (op_eq, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _eq); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
921 INSTALL_BINOP (op_ge, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _ge); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
922 INSTALL_BINOP (op_gt, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _gt); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
923 INSTALL_BINOP (op_ne, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _ne);
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
924
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
925 #define OCTAVE_INSTALL_SS_INT_BOOL_OPS(PFX, T1, T2) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
926 INSTALL_BINOP (op_el_and, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _el_and); \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
927 INSTALL_BINOP (op_el_or, octave_ ## T1 ## scalar, octave_ ## T2 ## scalar, PFX ## _el_or);
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
928
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
929 #define OCTAVE_INSTALL_SS_INT_OPS(TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
930 OCTAVE_INSTALL_S_INT_UNOPS (TYPE) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
931 OCTAVE_INSTALL_SS_INT_ARITH_OPS (ss, TYPE ## _, TYPE ## _) \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
932 OCTAVE_INSTALL_SS_INT_ARITH_OPS (ssx, TYPE ## _, ) \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
933 OCTAVE_INSTALL_SS_INT_ARITH_OPS (sxs, , TYPE ## _) \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
934 OCTAVE_INSTALL_SS_INT_ARITH_OPS (ssfx, TYPE ## _, float_) \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
935 OCTAVE_INSTALL_SS_INT_ARITH_OPS (sfxs, float_, TYPE ## _) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
936 OCTAVE_INSTALL_SS_INT_CMP_OPS (ss, TYPE ## _, TYPE ## _) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
937 OCTAVE_INSTALL_SS_INT_CMP_OPS (sx, TYPE ## _, ) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
938 OCTAVE_INSTALL_SS_INT_CMP_OPS (xs, , TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
939 OCTAVE_INSTALL_SS_INT_CMP_OPS (sfx, TYPE ## _, float_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
940 OCTAVE_INSTALL_SS_INT_CMP_OPS (fxs, float_, TYPE ## _) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
941 OCTAVE_INSTALL_SS_INT_BOOL_OPS (ss, TYPE ## _, TYPE ## _) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
942 OCTAVE_INSTALL_SS_INT_BOOL_OPS (sx, TYPE ## _, ) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
943 OCTAVE_INSTALL_SS_INT_BOOL_OPS (xs, , TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
944 OCTAVE_INSTALL_SS_INT_BOOL_OPS (sfx, TYPE ## _, float_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
945 OCTAVE_INSTALL_SS_INT_BOOL_OPS (fxs, float_, TYPE ## _) \
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
946 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _matrix) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
947 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_scalar, octave_ ## TYPE ## _matrix) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
948 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_float_scalar, octave_ ## TYPE ## _matrix) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
949 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_complex_scalar, octave_complex_matrix) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
950 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_float_complex_scalar, octave_float_complex_matrix)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
951
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
952 #define OCTAVE_INSTALL_SM_INT_ARITH_OPS(PFX, T1, T2) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
953 INSTALL_BINOP (op_add, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _add); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
954 INSTALL_BINOP (op_sub, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _sub); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
955 INSTALL_BINOP (op_mul, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _mul); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
956 /* INSTALL_BINOP (op_div, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _div); */ \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
957 /* INSTALL_BINOP (op_pow, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _pow); */ \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
958 INSTALL_BINOP (op_ldiv, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _ldiv); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
959 INSTALL_BINOP (op_el_mul, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _el_mul); \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
960 INSTALL_BINOP (op_el_div, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _el_div); \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
961 INSTALL_BINOP (op_el_pow, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _el_pow); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
962 INSTALL_BINOP (op_el_ldiv, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _el_ldiv);
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
963
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
964 #define OCTAVE_INSTALL_SM_INT_CMP_OPS(PFX, T1, T2) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
965 INSTALL_BINOP (op_lt, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _lt); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
966 INSTALL_BINOP (op_le, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _le); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
967 INSTALL_BINOP (op_eq, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _eq); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
968 INSTALL_BINOP (op_ge, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _ge); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
969 INSTALL_BINOP (op_gt, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _gt); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
970 INSTALL_BINOP (op_ne, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _ne);
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
971
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
972 #define OCTAVE_INSTALL_SM_INT_BOOL_OPS(PFX, T1, T2) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
973 INSTALL_BINOP (op_el_and, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _el_and); \
8982
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
974 INSTALL_BINOP (op_el_or, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _el_or); \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
975 INSTALL_BINOP (op_el_and_not, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _el_and_not); \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
976 INSTALL_BINOP (op_el_or_not, octave_ ## T1 ## scalar, octave_ ## T2 ## matrix, PFX ## _el_or_not);
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
977
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
978 #define OCTAVE_INSTALL_SM_INT_OPS(TYPE) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
979 OCTAVE_INSTALL_SM_INT_ARITH_OPS (sm, TYPE ## _, TYPE ## _) \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
980 OCTAVE_INSTALL_SM_INT_ARITH_OPS (smx, TYPE ## _, ) \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
981 OCTAVE_INSTALL_SM_INT_ARITH_OPS (sxm, , TYPE ## _) \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
982 OCTAVE_INSTALL_SM_INT_ARITH_OPS (smfx, TYPE ## _, float_) \
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
983 OCTAVE_INSTALL_SM_INT_ARITH_OPS (sfxm, float_, TYPE ## _) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
984 OCTAVE_INSTALL_SM_INT_CMP_OPS (sm, TYPE ## _, TYPE ## _) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
985 OCTAVE_INSTALL_SM_INT_CMP_OPS (xm, , TYPE ## _) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
986 OCTAVE_INSTALL_SM_INT_CMP_OPS (smx, TYPE ## _, ) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
987 OCTAVE_INSTALL_SM_INT_CMP_OPS (fxm, float_, TYPE ## _) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
988 OCTAVE_INSTALL_SM_INT_CMP_OPS (smfx, TYPE ## _, float_) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
989 OCTAVE_INSTALL_SM_INT_BOOL_OPS (sm, TYPE ## _, TYPE ## _) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
990 OCTAVE_INSTALL_SM_INT_BOOL_OPS (xm, , TYPE ## _) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
991 OCTAVE_INSTALL_SM_INT_BOOL_OPS (smx, TYPE ## _, ) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
992 OCTAVE_INSTALL_SM_INT_BOOL_OPS (fxm, float_, TYPE ## _) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
993 OCTAVE_INSTALL_SM_INT_BOOL_OPS (smfx, TYPE ## _, float_) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
994 INSTALL_WIDENOP (octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _matrix, TYPE ## _s_ ## TYPE ## _m_conv) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
995 INSTALL_WIDENOP (octave_ ## TYPE ## _scalar, octave_complex_matrix, TYPE ## _s_complex_m_conv) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
996 INSTALL_WIDENOP (octave_ ## TYPE ## _scalar, octave_float_complex_matrix, TYPE ## _s_float_complex_m_conv) \
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
997 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_ ## TYPE ## _matrix, octave_ ## TYPE ## _matrix) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
998 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_matrix, octave_ ## TYPE ## _matrix) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
999 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_float_matrix, octave_ ## TYPE ## _matrix) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1000 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_complex_matrix, octave_complex_matrix) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1001 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_float_complex_matrix, octave_float_complex_matrix)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1002
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1003 #define OCTAVE_INSTALL_MS_INT_ARITH_OPS(PFX, T1, T2) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1004 INSTALL_BINOP (op_add, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _add); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1005 INSTALL_BINOP (op_sub, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _sub); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1006 INSTALL_BINOP (op_mul, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _mul); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1007 INSTALL_BINOP (op_div, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _div); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1008 /* INSTALL_BINOP (op_pow, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _pow); */ \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1009 /* INSTALL_BINOP (op_ldiv, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _ldiv); */ \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1010 \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1011 INSTALL_BINOP (op_el_mul, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _el_mul); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1012 INSTALL_BINOP (op_el_div, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _el_div); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1013 INSTALL_BINOP (op_el_pow, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _el_pow); \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1014 INSTALL_BINOP (op_el_ldiv, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _el_ldiv);
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1015
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1016 #define OCTAVE_INSTALL_MS_INT_CMP_OPS(PFX, T1, T2) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1017 INSTALL_BINOP (op_lt, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _lt); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1018 INSTALL_BINOP (op_le, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _le); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1019 INSTALL_BINOP (op_eq, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _eq); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1020 INSTALL_BINOP (op_ge, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _ge); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1021 INSTALL_BINOP (op_gt, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _gt); \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1022 INSTALL_BINOP (op_ne, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _ne);
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1023
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1024 #define OCTAVE_INSTALL_MS_INT_BOOL_OPS(PFX, T1, T2) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1025 INSTALL_BINOP (op_el_and, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _el_and); \
8982
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
1026 INSTALL_BINOP (op_el_or, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _el_or); \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
1027 INSTALL_BINOP (op_el_not_and, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _el_not_and); \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
1028 INSTALL_BINOP (op_el_not_or, octave_ ## T1 ## matrix, octave_ ## T2 ## scalar, PFX ## _el_not_or);
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1029
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1030 #define OCTAVE_INSTALL_MS_INT_ASSIGN_OPS(PFX, TLHS, TRHS) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1031 INSTALL_ASSIGNOP (op_asn_eq, octave_ ## TLHS ## matrix, octave_ ## TRHS ## scalar, PFX ## _assign)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1032
9546
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
1033 #define OCTAVE_INSTALL_MS_INT_ASSIGNEQ_OPS(PFX, TLHS, TRHS) \
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
1034 INSTALL_ASSIGNOP (op_add_eq, octave_ ## TLHS ## matrix, octave_ ## TRHS ## scalar, PFX ## _assign_add) \
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
1035 INSTALL_ASSIGNOP (op_sub_eq, octave_ ## TLHS ## matrix, octave_ ## TRHS ## scalar, PFX ## _assign_sub) \
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
1036 INSTALL_ASSIGNOP (op_mul_eq, octave_ ## TLHS ## matrix, octave_ ## TRHS ## scalar, PFX ## _assign_mul) \
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
1037 INSTALL_ASSIGNOP (op_div_eq, octave_ ## TLHS ## matrix, octave_ ## TRHS ## scalar, PFX ## _assign_div)
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
1038
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1039 #define OCTAVE_INSTALL_MS_INT_OPS(TYPE) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1040 OCTAVE_INSTALL_MS_INT_ARITH_OPS (ms, TYPE ## _, TYPE ## _) \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1041 OCTAVE_INSTALL_MS_INT_ARITH_OPS (msx, TYPE ## _, ) \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
1042 OCTAVE_INSTALL_MS_INT_ARITH_OPS (mxs, , TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1043 OCTAVE_INSTALL_MS_INT_ARITH_OPS (msfx, TYPE ## _, float_) \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
1044 OCTAVE_INSTALL_MS_INT_ARITH_OPS (mfxs, float_, TYPE ## _) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1045 OCTAVE_INSTALL_MS_INT_CMP_OPS (ms, TYPE ## _, TYPE ## _) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1046 OCTAVE_INSTALL_MS_INT_CMP_OPS (mx, TYPE ## _, ) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1047 OCTAVE_INSTALL_MS_INT_CMP_OPS (mxs, , TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1048 OCTAVE_INSTALL_MS_INT_CMP_OPS (mfx, TYPE ## _, float_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1049 OCTAVE_INSTALL_MS_INT_CMP_OPS (mfxs, float_, TYPE ## _) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1050 OCTAVE_INSTALL_MS_INT_BOOL_OPS (ms, TYPE ## _, TYPE ## _) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1051 OCTAVE_INSTALL_MS_INT_BOOL_OPS (mx, TYPE ## _, ) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1052 OCTAVE_INSTALL_MS_INT_BOOL_OPS (mxs, , TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1053 OCTAVE_INSTALL_MS_INT_BOOL_OPS (mfx, TYPE ## _, float_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1054 OCTAVE_INSTALL_MS_INT_BOOL_OPS (mfxs, float_, TYPE ## _) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1055 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (ms, TYPE ## _, TYPE ## _) \
9546
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
1056 OCTAVE_INSTALL_MS_INT_ASSIGNEQ_OPS (mse, TYPE ## _, TYPE ## _) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1057 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mx, TYPE ## _, ) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1058 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mfx, TYPE ## _, float_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1059 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _matrix, octave_complex_scalar, octave_complex_matrix) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1060 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _matrix, octave_float_complex_scalar, octave_float_complex_matrix)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1061
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1062 #define OCTAVE_INSTALL_M_INT_UNOPS(TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1063 INSTALL_UNOP (op_not, octave_ ## TYPE ## _matrix, m_not); \
4965
c0d8e8afa82f [project @ 2004-09-06 20:19:57 by jwe]
jwe
parents: 4964
diff changeset
1064 INSTALL_UNOP (op_uplus, octave_ ## TYPE ## _matrix, m_uplus); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1065 INSTALL_UNOP (op_uminus, octave_ ## TYPE ## _matrix, m_uminus); \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1066 INSTALL_UNOP (op_transpose, octave_ ## TYPE ## _matrix, m_transpose); \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1067 INSTALL_UNOP (op_hermitian, octave_ ## TYPE ## _matrix, m_transpose); \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1068 \
5829
93785a1b0f97 [project @ 2006-05-23 18:34:10 by jwe]
jwe
parents: 5533
diff changeset
1069 INSTALL_NCUNOP (op_incr, octave_ ## TYPE ## _matrix, m_incr); \
9607
1be3c73ed7b5 reuse temporary arrays in nested expressions
Jaroslav Hajek <highegg@gmail.com>
parents: 9557
diff changeset
1070 INSTALL_NCUNOP (op_decr, octave_ ## TYPE ## _matrix, m_decr); \
1be3c73ed7b5 reuse temporary arrays in nested expressions
Jaroslav Hajek <highegg@gmail.com>
parents: 9557
diff changeset
1071 INSTALL_NCUNOP (op_uminus, octave_ ## TYPE ## _matrix, m_changesign);
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1072
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
1073 #define OCTAVE_INSTALL_MM_INT_ARITH_OPS(PFX, T1, T2) \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1074 INSTALL_BINOP (op_add, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _add); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1075 INSTALL_BINOP (op_sub, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _sub); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1076 /* INSTALL_BINOP (op_mul, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _mul); */ \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1077 /* INSTALL_BINOP (op_div, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _div); */ \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1078 INSTALL_BINOP (op_pow, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _pow); \
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1079 /* INSTALL_BINOP (op_ldiv, octave_ ## T1 ## _matrix, octave_ ## T2 ## _matrix, mm_ldiv); */ \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1080 INSTALL_BINOP (op_el_mul, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _el_mul); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1081 INSTALL_BINOP (op_el_div, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _el_div); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1082 INSTALL_BINOP (op_el_pow, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _el_pow); \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1083 INSTALL_BINOP (op_el_ldiv, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _el_ldiv);
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1084
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1085 #define OCTAVE_INSTALL_MM_INT_CMP_OPS(PFX, T1, T2) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1086 INSTALL_BINOP (op_lt, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _lt); \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1087 INSTALL_BINOP (op_le, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _le); \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1088 INSTALL_BINOP (op_eq, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _eq); \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1089 INSTALL_BINOP (op_ge, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _ge); \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1090 INSTALL_BINOP (op_gt, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _gt); \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1091 INSTALL_BINOP (op_ne, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _ne);
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1092
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1093 #define OCTAVE_INSTALL_MM_INT_BOOL_OPS(PFX, T1, T2) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1094 INSTALL_BINOP (op_el_and, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _el_and); \
8982
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
1095 INSTALL_BINOP (op_el_or, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _el_or); \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
1096 INSTALL_BINOP (op_el_not_and, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _el_not_and); \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
1097 INSTALL_BINOP (op_el_not_or, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _el_not_or); \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
1098 INSTALL_BINOP (op_el_and_not, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _el_and_not); \
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
1099 INSTALL_BINOP (op_el_or_not, octave_ ## T1 ## matrix, octave_ ## T2 ## matrix, PFX ## _el_or_not);
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1100
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1101 #define OCTAVE_INSTALL_MM_INT_ASSIGN_OPS(PFX, TLHS, TRHS) \
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1102 INSTALL_ASSIGNOP (op_asn_eq, octave_ ## TLHS ## matrix, octave_ ## TRHS ## matrix, PFX ## _assign)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1103
9546
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
1104 #define OCTAVE_INSTALL_MM_INT_ASSIGNEQ_OPS(PFX, TLHS, TRHS) \
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
1105 INSTALL_ASSIGNOP (op_add_eq, octave_ ## TLHS ## matrix, octave_ ## TRHS ## matrix, PFX ## _assign_add) \
9557
3a1dd361f978 optimize .*=, ./= operators
Jaroslav Hajek <highegg@gmail.com>
parents: 9546
diff changeset
1106 INSTALL_ASSIGNOP (op_sub_eq, octave_ ## TLHS ## matrix, octave_ ## TRHS ## matrix, PFX ## _assign_sub) \
3a1dd361f978 optimize .*=, ./= operators
Jaroslav Hajek <highegg@gmail.com>
parents: 9546
diff changeset
1107 INSTALL_ASSIGNOP (op_el_mul_eq, octave_ ## TLHS ## matrix, octave_ ## TRHS ## matrix, PFX ## _assign_el_mul) \
3a1dd361f978 optimize .*=, ./= operators
Jaroslav Hajek <highegg@gmail.com>
parents: 9546
diff changeset
1108 INSTALL_ASSIGNOP (op_el_div_eq, octave_ ## TLHS ## matrix, octave_ ## TRHS ## matrix, PFX ## _assign_el_div)
9546
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
1109
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1110 #define OCTAVE_INSTALL_MM_INT_OPS(TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1111 OCTAVE_INSTALL_M_INT_UNOPS (TYPE) \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1112 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mm, TYPE ##_, TYPE ## _) \
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1113 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mmx, TYPE ##_, ) \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
1114 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mxm, , TYPE ##_) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1115 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mmfx, TYPE ##_, float_) \
9931
fb6b6fcafa62 untabify files in src/OPERATORS directory
John W. Eaton <jwe@octave.org>
parents: 9607
diff changeset
1116 OCTAVE_INSTALL_MM_INT_ARITH_OPS (mfxm, float_, TYPE ##_) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1117 OCTAVE_INSTALL_MM_INT_CMP_OPS (mm, TYPE ## _, TYPE ## _) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1118 OCTAVE_INSTALL_MM_INT_CMP_OPS (mmx, TYPE ## _, ) \
5038
fdfce0dec36b [project @ 2004-09-24 17:46:18 by jwe]
jwe
parents: 5030
diff changeset
1119 OCTAVE_INSTALL_MM_INT_CMP_OPS (mxm, , TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1120 OCTAVE_INSTALL_MM_INT_CMP_OPS (mmfx, TYPE ## _, float_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1121 OCTAVE_INSTALL_MM_INT_CMP_OPS (mfxm, float_, TYPE ## _) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1122 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mm, TYPE ## _, TYPE ## _) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1123 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mmx, TYPE ## _, ) \
5038
fdfce0dec36b [project @ 2004-09-24 17:46:18 by jwe]
jwe
parents: 5030
diff changeset
1124 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mxm, , TYPE ## _) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1125 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mmfx, TYPE ## _, float_) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1126 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mfxm, float_, TYPE ## _) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1127 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mm, TYPE ## _, TYPE ## _) \
9546
1beb23d2b892 optimize op= in common cases
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
1128 OCTAVE_INSTALL_MM_INT_ASSIGNEQ_OPS (mme, TYPE ## _, TYPE ## _) \
4953
7a3a480e8645 [project @ 2004-09-01 21:10:28 by jwe]
jwe
parents: 4952
diff changeset
1129 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmx, TYPE ## _, ) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1130 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmfx, TYPE ## _, float_) \
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1131 INSTALL_WIDENOP (octave_ ## TYPE ## _matrix, octave_complex_matrix, TYPE ## _m_complex_m_conv) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1132 INSTALL_WIDENOP (octave_ ## TYPE ## _matrix, octave_float_complex_matrix, TYPE ## _m_float_complex_m_conv) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1133 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _matrix, octave_complex_matrix, octave_complex_matrix) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1134 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _matrix, octave_float_complex_matrix, octave_float_complex_matrix)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1135
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1136 #define OCTAVE_INSTALL_RE_INT_ASSIGN_OPS(TYPE) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1137 INSTALL_ASSIGNOP (op_asn_eq, octave_matrix, octave_ ## TYPE ## _scalar, TYPE ## ms_assign) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1138 INSTALL_ASSIGNOP (op_asn_eq, octave_matrix, octave_ ## TYPE ## _matrix, TYPE ## mm_assign) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1139 INSTALL_ASSIGNCONV (octave_scalar, octave_ ## TYPE ## _scalar, octave_matrix) \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1140 INSTALL_ASSIGNCONV (octave_matrix, octave_ ## TYPE ## _matrix, octave_matrix)
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1141
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1142 #define OCTAVE_INSTALL_FLT_RE_INT_ASSIGN_OPS(TYPE) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1143 INSTALL_ASSIGNOP (op_asn_eq, octave_float_matrix, octave_ ## TYPE ## _scalar, TYPE ## fms_assign) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1144 INSTALL_ASSIGNOP (op_asn_eq, octave_float_matrix, octave_ ## TYPE ## _matrix, TYPE ## fmm_assign) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1145 INSTALL_ASSIGNCONV (octave_float_scalar, octave_ ## TYPE ## _scalar, octave_float_matrix) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1146 INSTALL_ASSIGNCONV (octave_float_matrix, octave_ ## TYPE ## _matrix, octave_float_matrix)
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1147
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1148 #define OCTAVE_INSTALL_CX_INT_ASSIGN_OPS(TYPE) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1149 INSTALL_ASSIGNOP (op_asn_eq, octave_complex_matrix, octave_ ## TYPE ## _scalar, TYPE ## cms_assign) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1150 INSTALL_ASSIGNOP (op_asn_eq, octave_complex_matrix, octave_ ## TYPE ## _matrix, TYPE ## cmm_assign) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1151 INSTALL_ASSIGNCONV (octave_complex_scalar, octave_ ## TYPE ## _scalar, octave_complex_matrix) \
7625
43e3efb2cbc2 Add integer el_div and el_ldiv operators to the binops that were missing them
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
1152 INSTALL_ASSIGNCONV (octave_complex_matrix, octave_ ## TYPE ## _matrix, octave_complex_matrix)
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1153
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1154 #define OCTAVE_INSTALL_FLT_CX_INT_ASSIGN_OPS(TYPE) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1155 INSTALL_ASSIGNOP (op_asn_eq, octave_float_complex_matrix, octave_ ## TYPE ## _scalar, TYPE ## fcms_assign) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1156 INSTALL_ASSIGNOP (op_asn_eq, octave_float_complex_matrix, octave_ ## TYPE ## _matrix, TYPE ## fcmm_assign) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1157 INSTALL_ASSIGNCONV (octave_float_complex_scalar, octave_ ## TYPE ## _scalar, octave_complex_matrix) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1158 INSTALL_ASSIGNCONV (octave_float_complex_matrix, octave_ ## TYPE ## _matrix, octave_complex_matrix)
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1159
8150
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8039
diff changeset
1160 #define OCTAVE_INSTALL_INT_NULL_ASSIGN_OPS(TYPE) \
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8039
diff changeset
1161 INSTALL_ASSIGNOP (op_asn_eq, octave_ ## TYPE ## _matrix, octave_null_matrix, TYPE ## null_assign) \
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8039
diff changeset
1162 INSTALL_ASSIGNOP (op_asn_eq, octave_ ## TYPE ## _matrix, octave_null_str, TYPE ## null_assign) \
18212
cda4bd2fd0c0 fix null matrix assignment to indexed integer and logical values (bug #35921)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
1163 INSTALL_ASSIGNOP (op_asn_eq, octave_ ## TYPE ## _matrix, octave_null_sq_str, TYPE ## null_assign) \
cda4bd2fd0c0 fix null matrix assignment to indexed integer and logical values (bug #35921)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
1164 INSTALL_ASSIGNCONV (octave_ ## TYPE ## _scalar, octave_null_matrix, octave_ ## TYPE ## _matrix) \
cda4bd2fd0c0 fix null matrix assignment to indexed integer and logical values (bug #35921)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
1165 INSTALL_ASSIGNCONV (octave_## TYPE ## _scalar, octave_null_str, octave_ ## TYPE ## _matrix) \
cda4bd2fd0c0 fix null matrix assignment to indexed integer and logical values (bug #35921)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
1166 INSTALL_ASSIGNCONV (octave_## TYPE ## _scalar, octave_null_sq_str, octave_ ## TYPE ## _matrix)
8150
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8039
diff changeset
1167
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1168 #define OCTAVE_INSTALL_INT_OPS(TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1169 OCTAVE_INSTALL_SS_INT_OPS (TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1170 OCTAVE_INSTALL_SM_INT_OPS (TYPE) \
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1171 OCTAVE_INSTALL_MS_INT_OPS (TYPE) \
4915
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4905
diff changeset
1172 OCTAVE_INSTALL_MM_INT_OPS (TYPE) \
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1173 OCTAVE_INSTALL_CONCAT_FN (TYPE) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1174 OCTAVE_INSTALL_RE_INT_ASSIGN_OPS (TYPE) \
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1175 OCTAVE_INSTALL_FLT_RE_INT_ASSIGN_OPS (TYPE) \
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7625
diff changeset
1176 OCTAVE_INSTALL_CX_INT_ASSIGN_OPS (TYPE) \
8150
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8039
diff changeset
1177 OCTAVE_INSTALL_FLT_CX_INT_ASSIGN_OPS (TYPE) \
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8039
diff changeset
1178 OCTAVE_INSTALL_INT_NULL_ASSIGN_OPS(TYPE)
4963
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1179
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1180 #define OCTAVE_INSTALL_SM_INT_ASSIGNCONV(TLHS, TRHS) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1181 INSTALL_ASSIGNCONV (octave_ ## TLHS ## _scalar, octave_ ## TRHS ## _scalar, octave_ ## TLHS ## _matrix) \
573d23f9c9cf [project @ 2004-09-03 15:43:29 by jwe]
jwe
parents: 4953
diff changeset
1182 INSTALL_ASSIGNCONV (octave_ ## TLHS ## _scalar, octave_ ## TRHS ## _matrix, octave_ ## TLHS ## _matrix)
4905
f7a337f3fd9e [project @ 2004-06-17 04:11:50 by jwe]
jwe
parents:
diff changeset
1183
4964
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1184 #define OCTAVE_MIXED_INT_CMP_OPS(T1, T2) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1185 OCTAVE_SS_INT_CMP_OPS (T1 ## _ ## T2 ## _ss, T1 ## _, T2 ## _) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1186 OCTAVE_SM_INT_CMP_OPS (T1 ## _ ## T2 ## _sm, T1 ## _, T2 ## _) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1187 OCTAVE_MS_INT_CMP_OPS (T1 ## _ ## T2 ## _ms, T1 ## _, T2 ## _) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1188 OCTAVE_MM_INT_CMP_OPS (T1 ## _ ## T2 ## _mm, T1 ## _, T2 ## _)
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1189
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1190 #define OCTAVE_INSTALL_MIXED_INT_CMP_OPS(T1, T2) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1191 OCTAVE_INSTALL_SS_INT_CMP_OPS (T1 ## _ ## T2 ## _ss, T1 ## _, T2 ## _) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1192 OCTAVE_INSTALL_SM_INT_CMP_OPS (T1 ## _ ## T2 ## _sm, T1 ## _, T2 ## _) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1193 OCTAVE_INSTALL_MS_INT_CMP_OPS (T1 ## _ ## T2 ## _ms, T1 ## _, T2 ## _) \
269c3d6c0569 [project @ 2004-09-04 01:16:28 by jwe]
jwe
parents: 4963
diff changeset
1194 OCTAVE_INSTALL_MM_INT_CMP_OPS (T1 ## _ ## T2 ## _mm, T1 ## _, T2 ## _)