annotate libinterp/operators/op-int.h @ 20267:a9574e3c6e9e

Deprecate Array::length() and Sparse::length() in favour of ::numel(). * liboctave/array/Array.h (Array::length): deprecate for ::numel. * liboctave/array/Sparse.h (Sparse::length): deprecate for ::numel. * libgui/graphics/QtHandlesUtils.cc, libgui/src/octave-qt-link.cc, libinterp/corefcn/Cell.cc, libinterp/corefcn/__contourc__.cc, libinterp/corefcn/__pchip_deriv__.cc, libinterp/corefcn/__qp__.cc, libinterp/corefcn/cellfun.cc, libinterp/corefcn/daspk.cc, libinterp/corefcn/dasrt.cc, libinterp/corefcn/dassl.cc, libinterp/corefcn/data.cc, libinterp/corefcn/filter.cc, libinterp/corefcn/find.cc, libinterp/corefcn/gl-render.cc, libinterp/corefcn/gl-render.h, libinterp/corefcn/graphics.cc, libinterp/corefcn/graphics.in.h, libinterp/corefcn/help.cc, libinterp/corefcn/hex2num.cc, libinterp/corefcn/input.cc, libinterp/corefcn/load-path.cc, libinterp/corefcn/load-save.cc, libinterp/corefcn/ls-oct-ascii.h, libinterp/corefcn/lsode.cc, libinterp/corefcn/matrix_type.cc, libinterp/corefcn/oct-hist.cc, libinterp/corefcn/oct-map.cc, libinterp/corefcn/oct-map.h, libinterp/corefcn/oct-obj.h, libinterp/corefcn/oct-stream.cc, libinterp/corefcn/oct-stream.h, libinterp/corefcn/pr-output.cc, libinterp/corefcn/quadcc.cc, libinterp/corefcn/rand.cc, libinterp/corefcn/regexp.cc, libinterp/corefcn/strfns.cc, libinterp/corefcn/sub2ind.cc, libinterp/corefcn/symtab.h, libinterp/corefcn/syscalls.cc, libinterp/corefcn/tsearch.cc, libinterp/corefcn/urlwrite.cc, libinterp/corefcn/utils.cc, libinterp/corefcn/variables.cc, libinterp/corefcn/xdiv.cc, libinterp/corefcn/xpow.cc, libinterp/dldfcn/__glpk__.cc, libinterp/dldfcn/__init_fltk__.cc, libinterp/dldfcn/__magick_read__.cc, libinterp/dldfcn/audiodevinfo.cc, libinterp/dldfcn/ccolamd.cc, libinterp/dldfcn/colamd.cc, libinterp/octave-value/ov-cell.cc, libinterp/octave-value/ov-class.cc, libinterp/octave-value/ov-class.h, libinterp/octave-value/ov-fcn-inline.cc, libinterp/octave-value/ov-java.cc, libinterp/octave-value/ov-perm.cc, libinterp/octave-value/ov-struct.cc, libinterp/octave-value/ov-typeinfo.cc, libinterp/octave-value/ov.cc, libinterp/operators/op-int.h, libinterp/parse-tree/pt-pr-code.cc, liboctave/array/Array-util.cc, liboctave/array/Array.cc, liboctave/array/CColVector.cc, liboctave/array/CDiagMatrix.cc, liboctave/array/CMatrix.cc, liboctave/array/CRowVector.cc, liboctave/array/DiagArray2.cc, liboctave/array/DiagArray2.h, liboctave/array/MArray.cc, liboctave/array/PermMatrix.cc, liboctave/array/PermMatrix.h, liboctave/array/Sparse.cc, liboctave/array/boolMatrix.cc, liboctave/array/chMatrix.cc, liboctave/array/chNDArray.cc, liboctave/array/dColVector.cc, liboctave/array/dDiagMatrix.cc, liboctave/array/dMatrix.cc, liboctave/array/dRowVector.cc, liboctave/array/fCColVector.cc, liboctave/array/fCDiagMatrix.cc, liboctave/array/fCMatrix.cc, liboctave/array/fCRowVector.cc, liboctave/array/fColVector.cc, liboctave/array/fDiagMatrix.cc, liboctave/array/fMatrix.cc, liboctave/array/fRowVector.cc, liboctave/array/idx-vector.cc, liboctave/array/intNDArray.cc, liboctave/numeric/CmplxCHOL.cc, liboctave/numeric/CmplxLU.cc, liboctave/numeric/CmplxQR.cc, liboctave/numeric/DASPK.cc, liboctave/numeric/DASRT.cc, liboctave/numeric/DASSL.cc, liboctave/numeric/LSODE.cc, liboctave/numeric/ODES.cc, liboctave/numeric/ODES.h, liboctave/numeric/base-dae.h, liboctave/numeric/base-lu.cc, liboctave/numeric/dbleCHOL.cc, liboctave/numeric/dbleLU.cc, liboctave/numeric/dbleQR.cc, liboctave/numeric/eigs-base.cc, liboctave/numeric/fCmplxCHOL.cc, liboctave/numeric/fCmplxLU.cc, liboctave/numeric/fCmplxQR.cc, liboctave/numeric/floatCHOL.cc, liboctave/numeric/floatLU.cc, liboctave/numeric/floatQR.cc, liboctave/numeric/lo-specfun.cc, liboctave/numeric/oct-rand.cc, liboctave/numeric/oct-spparms.cc, liboctave/numeric/sparse-base-chol.cc, liboctave/operators/mx-inlines.cc, liboctave/system/file-ops.cc, liboctave/util/glob-match.h, liboctave/util/kpse.cc, liboctave/util/lo-regexp.cc, liboctave/util/oct-glob.cc, liboctave/util/pathsearch.cc, liboctave/util/str-vec.cc, liboctave/util/str-vec.h, liboctave/util/url-transfer.cc: replace all usage of Array::length() and Sparse::length() with ::numel().
author Carnë Draug <carandraug@octave.org>
date Sat, 30 May 2015 03:14:07 +0100
parents 19755f4fc851
children
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 ()); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
373 for (int i = 0; i < b.numel (); i++) \
4953
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 ()); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
385 for (int i = 0; i < b.numel (); 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
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 ()); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
397 for (int i = 0; i < b.numel (); 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
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 ()); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
409 for (int i = 0; i < b.numel (); i++) \
7789
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 ()); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
421 for (int i = 0; i < b.numel (); i++) \
7789
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 ()); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
539 for (int i = 0; i < a.numel (); i++) \
4952
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 ()); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
550 for (int i = 0; i < a.numel (); 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
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 ()); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
561 for (int i = 0; i < a.numel (); 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
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 ()); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
572 for (int i = 0; i < a.numel (); i++) \
7789
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 ()); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
583 for (int i = 0; i < a.numel (); i++) \
7789
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); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
718 for (int i = 0; i < a.numel (); i++) \
4953
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); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
744 for (int i = 0; i < a.numel (); 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
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); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
770 for (int i = 0; i < a.numel (); 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
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); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
796 for (int i = 0; i < a.numel (); i++) \
7789
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); \
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19895
diff changeset
822 for (int i = 0; i < a.numel (); i++) \
7789
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 ## _)