annotate liboctave/array/dNDArray.h @ 19352:d0c73e23a505

Change inheritance tree so that <T>Matrix inherit from <T>NDArray. * liboctave/array/CMatrix.cc, liboctave/array/CMatrix.h, liboctave/array/CNDArray.cc, liboctave/array/CNDArray.h, liboctave/array/dMatrix.cc, liboctave/array/dMatrix.h, liboctave/array/dNDArray.cc, liboctave/array/dNDArray.h, liboctave/array/fCMatrix.cc, liboctave/array/fCMatrix.h, liboctave/array/fCNDArray.cc, liboctave/array/fCNDArray.h, liboctave/array/fMatrix.cc, liboctave/array/fMatrix.h, liboctave/array/fNDArray.cc, liboctave/array/fNDArray.h: change base class of Matrix, FloatMatrix, ComplexMatrix, and FloatComplexMatrix to NDArray, FloatNDArray, ComplexNDArray, and FloatComplexNDArray respectively. This will allow to reduce duplicated code since the Matrix classes will be able to inherit many of their methods from their NDArray counterparts. Also remove the matrix_value () method since a constructor now suffices. * liboctave/array/CSparse.h: include CMatrix * libinterp/corefcn/pr-output.cc, libinterp/octave-value/ov-cx-mat.cc, libinterp/octave-value/ov-flt-cx-mat.cc, libinterp/octave-value/ov-flt-re-mat.cc, libinterp/octave-value/ov-re-mat.cc: replace calls to matrix_value () with constructor with respective Matrix subclass.
author Carnë Draug <carandraug@octave.org>
date Fri, 07 Nov 2014 08:15:55 +0000
parents ebb3ef964372
children 4197fc428c7d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
1 /*
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
2
17744
d63878346099 maint: Update copyright notices for release.
John W. Eaton <jwe@octave.org>
parents: 15271
diff changeset
3 Copyright (C) 1996-2013 John W. Eaton
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
4
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
6
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
24af46b4ce84 [project @ 2003-09-12 16:46:04 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: 6989
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: 6989
diff changeset
10 option) any later version.
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
11
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
15 for more details.
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
16
24af46b4ce84 [project @ 2003-09-12 16:46:04 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: 6989
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: 6989
diff changeset
19 <http://www.gnu.org/licenses/>.
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
20
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
21 */
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
22
17822
ebb3ef964372 maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents: 17769
diff changeset
23 #if !defined (octave_dNDArray_h)
ebb3ef964372 maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents: 17769
diff changeset
24 #define octave_dNDArray_h 1
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
25
10350
12884915a8e4 merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10329
diff changeset
26 #include "MArray.h"
4902
bd043a433918 [project @ 2004-06-14 18:46:20 by jwe]
jwe
parents: 4844
diff changeset
27 #include "intNDArray.h"
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
28
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
29 #include "mx-defs.h"
8774
b756ce0002db split implementation and interface in mx-op-defs and MArray-defs
Jaroslav Hajek <highegg@gmail.com>
parents: 8650
diff changeset
30 #include "mx-op-decl.h"
9743
26abff55f6fe optimize bsxfun for common built-in operations
Jaroslav Hajek <highegg@gmail.com>
parents: 9732
diff changeset
31 #include "bsxfun-decl.h"
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
32
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4511
diff changeset
33 class
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5943
diff changeset
34 OCTAVE_API
10350
12884915a8e4 merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10329
diff changeset
35 NDArray : public MArray<double>
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
36 {
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4511
diff changeset
37 public:
5523
451ad352b288 [project @ 2005-10-31 03:18:21 by jwe]
jwe
parents: 5508
diff changeset
38
10350
12884915a8e4 merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10329
diff changeset
39 NDArray (void) : MArray<double> () { }
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
40
10350
12884915a8e4 merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10329
diff changeset
41 NDArray (const dim_vector& dv) : MArray<double> (dv) { }
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
42
4587
7b957b442818 [project @ 2003-11-10 15:50:39 by jwe]
jwe
parents: 4584
diff changeset
43 NDArray (const dim_vector& dv, double val)
10350
12884915a8e4 merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10329
diff changeset
44 : MArray<double> (dv, val) { }
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
45
10350
12884915a8e4 merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10329
diff changeset
46 NDArray (const NDArray& a) : MArray<double> (a) { }
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4511
diff changeset
47
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
48 NDArray (const Array<octave_idx_type>& a, bool zero_based = false,
10312
cbc402e64d83 untabify liboctave header files
John W. Eaton <jwe@octave.org>
parents: 10158
diff changeset
49 bool negative_to_nan = false);
7919
9d080df0c843 new NDArray constructor for ArrayN<octave_idx_type>
David Bateman <dbateman@free.fr>
parents: 7789
diff changeset
50
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7620
diff changeset
51 template <class U>
10350
12884915a8e4 merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10329
diff changeset
52 NDArray (const MArray<U>& a) : MArray<double> (a) { }
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7620
diff changeset
53
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7620
diff changeset
54 template <class U>
10350
12884915a8e4 merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10329
diff changeset
55 NDArray (const Array<U>& a) : MArray<double> (a) { }
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
56
4902
bd043a433918 [project @ 2004-06-14 18:46:20 by jwe]
jwe
parents: 4844
diff changeset
57 template <class U>
10350
12884915a8e4 merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10329
diff changeset
58 explicit NDArray (const intNDArray<U>& a) : MArray<double> (a) { }
4543
79df15d4470c [project @ 2003-10-18 03:53:52 by jwe]
jwe
parents: 4532
diff changeset
59
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
60 NDArray (const charNDArray&);
8956
d91fa4b20bbb ensure nonnegative char -> real conversion
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
61
14951
4c9fd3e31436 Start of jit support for double matricies
Max Brister <max@2bass.com>
parents: 14616
diff changeset
62 // For jit support only
17769
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
63 NDArray (double *sdata, octave_idx_type slen, octave_idx_type *adims,
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
64 void *arep)
14951
4c9fd3e31436 Start of jit support for double matricies
Max Brister <max@2bass.com>
parents: 14616
diff changeset
65 : MArray<double> (sdata, slen, adims, arep) { }
4c9fd3e31436 Start of jit support for double matricies
Max Brister <max@2bass.com>
parents: 14616
diff changeset
66
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
67 NDArray& operator = (const NDArray& a)
17769
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
68 {
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
69 MArray<double>::operator = (a);
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
70 return *this;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
71 }
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
72
4543
79df15d4470c [project @ 2003-10-18 03:53:52 by jwe]
jwe
parents: 4532
diff changeset
73 // unary operations
79df15d4470c [project @ 2003-10-18 03:53:52 by jwe]
jwe
parents: 4532
diff changeset
74
79df15d4470c [project @ 2003-10-18 03:53:52 by jwe]
jwe
parents: 4532
diff changeset
75 boolNDArray operator ! (void) const;
79df15d4470c [project @ 2003-10-18 03:53:52 by jwe]
jwe
parents: 4532
diff changeset
76
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents: 4587
diff changeset
77 bool any_element_is_negative (bool = false) const;
13756
6dfebfa334cb allow negative data log plots with OpenGL+FLTK graphics (bug #34232)
John W. Eaton <jwe@octave.org>
parents: 13005
diff changeset
78 bool any_element_is_positive (bool = false) const;
7922
935be827eaf8 error for NaN values in & and | expressions
John W. Eaton <jwe@octave.org>
parents: 7919
diff changeset
79 bool any_element_is_nan (void) const;
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents: 4587
diff changeset
80 bool any_element_is_inf_or_nan (void) const;
5943
c038c2947ee1 [project @ 2006-08-18 21:27:03 by jwe]
jwe
parents: 5775
diff changeset
81 bool any_element_not_one_or_zero (void) const;
6989
2d326000e09b [project @ 2007-10-09 20:32:42 by jwe]
jwe
parents: 6708
diff changeset
82 bool all_elements_are_zero (void) const;
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents: 4587
diff changeset
83 bool all_elements_are_int_or_inf_or_nan (void) const;
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents: 4587
diff changeset
84 bool all_integers (double& max_val, double& min_val) const;
9827
c15a5ed0da58 optimize bsxfun (@power, ...)
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
85 bool all_integers (void) const;
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents: 4587
diff changeset
86 bool too_large_for_float (void) const;
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents: 4587
diff changeset
87
17769
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
88 // FIXME: this is not quite the right thing.
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4511
diff changeset
89
4556
773a21e4fce8 [project @ 2003-10-28 05:02:10 by jwe]
jwe
parents: 4543
diff changeset
90 boolNDArray all (int dim = -1) const;
773a21e4fce8 [project @ 2003-10-28 05:02:10 by jwe]
jwe
parents: 4543
diff changeset
91 boolNDArray any (int dim = -1) const;
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4511
diff changeset
92
4584
f7697d703481 [project @ 2003-10-31 19:47:35 by jwe]
jwe
parents: 4569
diff changeset
93 NDArray cumprod (int dim = -1) const;
f7697d703481 [project @ 2003-10-31 19:47:35 by jwe]
jwe
parents: 4569
diff changeset
94 NDArray cumsum (int dim = -1) const;
4569
01e4957409a4 [project @ 2003-10-30 05:48:17 by jwe]
jwe
parents: 4556
diff changeset
95 NDArray prod (int dim = -1) const;
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
96 NDArray sum (int dim = -1) const;
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
97 NDArray xsum (int dim = -1) const;
4569
01e4957409a4 [project @ 2003-10-30 05:48:17 by jwe]
jwe
parents: 4556
diff changeset
98 NDArray sumsq (int dim = -1) const;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5105
diff changeset
99 NDArray concat (const NDArray& rb, const Array<octave_idx_type>& ra_idx);
17769
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
100 ComplexNDArray concat (const ComplexNDArray& rb,
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
101 const Array<octave_idx_type>& ra_idx);
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
102 charNDArray concat (const charNDArray& rb,
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
103 const Array<octave_idx_type>& ra_idx);
4844
9f7ef92b50b0 [project @ 2004-04-02 17:26:53 by jwe]
jwe
parents: 4806
diff changeset
104
9790
a5035bc7fbfb rewrite dispatch part & slightly improve min,max,cummin,cummax
Jaroslav Hajek <highegg@gmail.com>
parents: 9743
diff changeset
105 NDArray max (int dim = -1) const;
a5035bc7fbfb rewrite dispatch part & slightly improve min,max,cummin,cummax
Jaroslav Hajek <highegg@gmail.com>
parents: 9743
diff changeset
106 NDArray max (Array<octave_idx_type>& index, int dim = -1) const;
a5035bc7fbfb rewrite dispatch part & slightly improve min,max,cummin,cummax
Jaroslav Hajek <highegg@gmail.com>
parents: 9743
diff changeset
107 NDArray min (int dim = -1) const;
a5035bc7fbfb rewrite dispatch part & slightly improve min,max,cummin,cummax
Jaroslav Hajek <highegg@gmail.com>
parents: 9743
diff changeset
108 NDArray min (Array<octave_idx_type>& index, int dim = -1) const;
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
109
9790
a5035bc7fbfb rewrite dispatch part & slightly improve min,max,cummin,cummax
Jaroslav Hajek <highegg@gmail.com>
parents: 9743
diff changeset
110 NDArray cummax (int dim = -1) const;
a5035bc7fbfb rewrite dispatch part & slightly improve min,max,cummin,cummax
Jaroslav Hajek <highegg@gmail.com>
parents: 9743
diff changeset
111 NDArray cummax (Array<octave_idx_type>& index, int dim = -1) const;
a5035bc7fbfb rewrite dispatch part & slightly improve min,max,cummin,cummax
Jaroslav Hajek <highegg@gmail.com>
parents: 9743
diff changeset
112 NDArray cummin (int dim = -1) const;
a5035bc7fbfb rewrite dispatch part & slightly improve min,max,cummin,cummax
Jaroslav Hajek <highegg@gmail.com>
parents: 9743
diff changeset
113 NDArray cummin (Array<octave_idx_type>& index, int dim = -1) const;
8777
724c0f46d9d4 implement cummin/cummax functions
Jaroslav Hajek <highegg@gmail.com>
parents: 8774
diff changeset
114
9790
a5035bc7fbfb rewrite dispatch part & slightly improve min,max,cummin,cummax
Jaroslav Hajek <highegg@gmail.com>
parents: 9743
diff changeset
115 NDArray diff (octave_idx_type order = 1, int dim = -1) const;
9513
9f870f73ab7d implement built-in diff
Jaroslav Hajek <highegg@gmail.com>
parents: 8998
diff changeset
116
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5105
diff changeset
117 NDArray& insert (const NDArray& a, octave_idx_type r, octave_idx_type c);
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5105
diff changeset
118 NDArray& insert (const NDArray& a, const Array<octave_idx_type>& ra_idx);
4915
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4902
diff changeset
119
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents: 4587
diff changeset
120 NDArray abs (void) const;
8998
a48fba01e4ac optimize isnan/isinf/isfinite mappers
Jaroslav Hajek <highegg@gmail.com>
parents: 8956
diff changeset
121 boolNDArray isnan (void) const;
a48fba01e4ac optimize isnan/isinf/isfinite mappers
Jaroslav Hajek <highegg@gmail.com>
parents: 8956
diff changeset
122 boolNDArray isinf (void) const;
a48fba01e4ac optimize isnan/isinf/isfinite mappers
Jaroslav Hajek <highegg@gmail.com>
parents: 8956
diff changeset
123 boolNDArray isfinite (void) const;
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents: 4587
diff changeset
124
4773
ccfbd6047a54 [project @ 2004-02-16 19:02:32 by jwe]
jwe
parents: 4762
diff changeset
125 ComplexNDArray fourier (int dim = 1) const;
ccfbd6047a54 [project @ 2004-02-16 19:02:32 by jwe]
jwe
parents: 4762
diff changeset
126 ComplexNDArray ifourier (int dim = 1) const;
ccfbd6047a54 [project @ 2004-02-16 19:02:32 by jwe]
jwe
parents: 4762
diff changeset
127
ccfbd6047a54 [project @ 2004-02-16 19:02:32 by jwe]
jwe
parents: 4762
diff changeset
128 ComplexNDArray fourier2d (void) const;
ccfbd6047a54 [project @ 2004-02-16 19:02:32 by jwe]
jwe
parents: 4762
diff changeset
129 ComplexNDArray ifourier2d (void) const;
ccfbd6047a54 [project @ 2004-02-16 19:02:32 by jwe]
jwe
parents: 4762
diff changeset
130
ccfbd6047a54 [project @ 2004-02-16 19:02:32 by jwe]
jwe
parents: 4762
diff changeset
131 ComplexNDArray fourierNd (void) const;
ccfbd6047a54 [project @ 2004-02-16 19:02:32 by jwe]
jwe
parents: 4762
diff changeset
132 ComplexNDArray ifourierNd (void) const;
ccfbd6047a54 [project @ 2004-02-16 19:02:32 by jwe]
jwe
parents: 4762
diff changeset
133
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5943
diff changeset
134 friend OCTAVE_API NDArray real (const ComplexNDArray& a);
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5943
diff changeset
135 friend OCTAVE_API NDArray imag (const ComplexNDArray& a);
4569
01e4957409a4 [project @ 2003-10-30 05:48:17 by jwe]
jwe
parents: 4556
diff changeset
136
8650
a1ae2aae903e abs,real,imag,conj: use code from mx-inlines rather than the generic map
Jaroslav Hajek <highegg@gmail.com>
parents: 7922
diff changeset
137 friend class ComplexNDArray;
a1ae2aae903e abs,real,imag,conj: use code from mx-inlines rather than the generic map
Jaroslav Hajek <highegg@gmail.com>
parents: 7922
diff changeset
138
10350
12884915a8e4 merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10329
diff changeset
139 NDArray squeeze (void) const { return MArray<double>::squeeze (); }
4532
01ee68d18069 [project @ 2003-10-10 00:49:54 by jwe]
jwe
parents: 4513
diff changeset
140
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5105
diff changeset
141 static void increment_index (Array<octave_idx_type>& ra_idx,
10312
cbc402e64d83 untabify liboctave header files
John W. Eaton <jwe@octave.org>
parents: 10158
diff changeset
142 const dim_vector& dimensions,
cbc402e64d83 untabify liboctave header files
John W. Eaton <jwe@octave.org>
parents: 10158
diff changeset
143 int start_dimension = 0);
4532
01ee68d18069 [project @ 2003-10-10 00:49:54 by jwe]
jwe
parents: 4513
diff changeset
144
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5105
diff changeset
145 static octave_idx_type compute_index (Array<octave_idx_type>& ra_idx,
17769
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
146 const dim_vector& dimensions);
4556
773a21e4fce8 [project @ 2003-10-28 05:02:10 by jwe]
jwe
parents: 4543
diff changeset
147
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
148 // i/o
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
149
17769
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
150 friend OCTAVE_API std::ostream& operator << (std::ostream& os,
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
151 const NDArray& a);
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5943
diff changeset
152 friend OCTAVE_API std::istream& operator >> (std::istream& is, NDArray& a);
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
153
7620
36594d5bbe13 Move diag function into the octave_value class
David Bateman <dbateman@free.fr>
parents: 7503
diff changeset
154 NDArray diag (octave_idx_type k = 0) const;
36594d5bbe13 Move diag function into the octave_value class
David Bateman <dbateman@free.fr>
parents: 7503
diff changeset
155
14557
e8e86ae3abbc make diag (x, m, n) return a proper diagonal matrix object (bug #36099)
John W. Eaton <jwe@octave.org>
parents: 14138
diff changeset
156 NDArray diag (octave_idx_type m, octave_idx_type n) const;
e8e86ae3abbc make diag (x, m, n) return a proper diagonal matrix object (bug #36099)
John W. Eaton <jwe@octave.org>
parents: 14138
diff changeset
157
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
158 NDArray& changesign (void)
17769
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
159 {
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
160 MArray<double>::changesign ();
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
161 return *this;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
162 }
9607
1be3c73ed7b5 reuse temporary arrays in nested expressions
Jaroslav Hajek <highegg@gmail.com>
parents: 9513
diff changeset
163
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
164 };
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
165
5508
7865515fc6c2 [project @ 2005-10-26 15:24:07 by jwe]
jwe
parents: 5307
diff changeset
166 // Publish externally used friend functions.
7865515fc6c2 [project @ 2005-10-26 15:24:07 by jwe]
jwe
parents: 5307
diff changeset
167
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5943
diff changeset
168 extern OCTAVE_API NDArray real (const ComplexNDArray& a);
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 5943
diff changeset
169 extern OCTAVE_API NDArray imag (const ComplexNDArray& a);
5508
7865515fc6c2 [project @ 2005-10-26 15:24:07 by jwe]
jwe
parents: 5307
diff changeset
170
10329
83fa590b8a09 simplify min/max definitions in liboctave
Jaroslav Hajek <highegg@gmail.com>
parents: 10312
diff changeset
171 MINMAX_DECLS (NDArray, double, OCTAVE_API)
4844
9f7ef92b50b0 [project @ 2004-04-02 17:26:53 by jwe]
jwe
parents: 4806
diff changeset
172
6708
0ce71beb1cf3 [project @ 2007-06-13 06:40:48 by jwe]
jwe
parents: 6108
diff changeset
173 NDS_CMP_OP_DECLS (NDArray, double, OCTAVE_API)
0ce71beb1cf3 [project @ 2007-06-13 06:40:48 by jwe]
jwe
parents: 6108
diff changeset
174 NDS_BOOL_OP_DECLS (NDArray, double, OCTAVE_API)
4543
79df15d4470c [project @ 2003-10-18 03:53:52 by jwe]
jwe
parents: 4532
diff changeset
175
6708
0ce71beb1cf3 [project @ 2007-06-13 06:40:48 by jwe]
jwe
parents: 6108
diff changeset
176 SND_CMP_OP_DECLS (double, NDArray, OCTAVE_API)
0ce71beb1cf3 [project @ 2007-06-13 06:40:48 by jwe]
jwe
parents: 6108
diff changeset
177 SND_BOOL_OP_DECLS (double, NDArray, OCTAVE_API)
4543
79df15d4470c [project @ 2003-10-18 03:53:52 by jwe]
jwe
parents: 4532
diff changeset
178
6708
0ce71beb1cf3 [project @ 2007-06-13 06:40:48 by jwe]
jwe
parents: 6108
diff changeset
179 NDND_CMP_OP_DECLS (NDArray, NDArray, OCTAVE_API)
0ce71beb1cf3 [project @ 2007-06-13 06:40:48 by jwe]
jwe
parents: 6108
diff changeset
180 NDND_BOOL_OP_DECLS (NDArray, NDArray, OCTAVE_API)
4543
79df15d4470c [project @ 2003-10-18 03:53:52 by jwe]
jwe
parents: 4532
diff changeset
181
10350
12884915a8e4 merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10329
diff changeset
182 MARRAY_FORWARD_DEFS (MArray, NDArray, double)
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
183
9743
26abff55f6fe optimize bsxfun for common built-in operations
Jaroslav Hajek <highegg@gmail.com>
parents: 9732
diff changeset
184 BSXFUN_STDOP_DECLS (NDArray, OCTAVE_API)
26abff55f6fe optimize bsxfun for common built-in operations
Jaroslav Hajek <highegg@gmail.com>
parents: 9732
diff changeset
185 BSXFUN_STDREL_DECLS (NDArray, OCTAVE_API)
26abff55f6fe optimize bsxfun for common built-in operations
Jaroslav Hajek <highegg@gmail.com>
parents: 9732
diff changeset
186
9827
c15a5ed0da58 optimize bsxfun (@power, ...)
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
187 BSXFUN_OP_DECL (pow, NDArray, OCTAVE_API)
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
188 BSXFUN_OP2_DECL (pow, ComplexNDArray, ComplexNDArray,
9827
c15a5ed0da58 optimize bsxfun (@power, ...)
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
189 NDArray, OCTAVE_API)
13005
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11586
diff changeset
190 BSXFUN_OP2_DECL (pow, ComplexNDArray, NDArray,
4061106b1c4b Enable automatic bsxfun for power operators
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11586
diff changeset
191 ComplexNDArray, OCTAVE_API)
9827
c15a5ed0da58 optimize bsxfun (@power, ...)
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
192
4511
24af46b4ce84 [project @ 2003-09-12 16:46:04 by jwe]
jwe
parents:
diff changeset
193 #endif