GNU Octave  4.0.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
chNDArray.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 2003-2015 John W. Eaton
4 
5 This file is part of Octave.
6 
7 Octave is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the
9 Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11 
12 Octave is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with Octave; see the file COPYING. If not, see
19 <http://www.gnu.org/licenses/>.
20 
21 */
22 
23 #if !defined (octave_chNDArray_h)
24 #define octave_chNDArray_h 1
25 
26 #include <string>
27 
28 #include "Array.h"
29 
30 #include "mx-defs.h"
31 #include "mx-op-decl.h"
32 #include "bsxfun-decl.h"
33 #include "str-vec.h"
34 
35 class
36 OCTAVE_API
37 charNDArray : public Array<char>
38 {
39 public:
40 
42 
43  charNDArray (void) : Array<char> () { }
44 
45  charNDArray (const dim_vector& dv) : Array<char> (dv) { }
46 
47  charNDArray (const dim_vector& dv, char val) : Array<char> (dv, val) { }
48 
49  charNDArray (const charNDArray& a) : Array<char> (a) { }
50 
51  charNDArray (const Array<char>& a) : Array<char> (a) { }
52 
53  charNDArray (char c);
54 
55  charNDArray (const char *s);
56 
57  charNDArray (const std::string& s);
58 
59  charNDArray (const string_vector& s, char fill_value = '\0');
60 
62  {
64  return *this;
65  }
66 
67  bool any_element_is_nan (void) const { return false; }
68 
69  // FIXME: this is not quite the right thing.
70 
71  boolNDArray all (int dim = -1) const;
72  boolNDArray any (int dim = -1) const;
73  charNDArray concat (const charNDArray& rb,
76 
77  charNDArray max (int dim = -1) const;
78  charNDArray max (Array<octave_idx_type>& index, int dim = -1) const;
79  charNDArray min (int dim = -1) const;
80  charNDArray min (Array<octave_idx_type>& index, int dim = -1) const;
81 
82  charNDArray& insert (const charNDArray& a,
84  charNDArray& insert (const charNDArray& a,
86 
87  charNDArray squeeze (void) const { return Array<char>::squeeze (); }
88 
90  const dim_vector& dimensions,
91  int start_dimension = 0);
92 
94  const dim_vector& dimensions);
95 
96  // i/o
97 
98  // friend std::ostream& operator << (std::ostream& os, const charNDArray& a);
99  // friend std::istream& operator >> (std::istream& is, charNDArray& a);
100 
101  charNDArray diag (octave_idx_type k = 0) const;
102 
104 };
105 
106 extern OCTAVE_API charNDArray min (char d, const charNDArray& m);
107 extern OCTAVE_API charNDArray min (const charNDArray& m, char d);
108 extern OCTAVE_API charNDArray min (const charNDArray& a, const charNDArray& b);
109 extern OCTAVE_API charNDArray max (char d, const charNDArray& m);
110 extern OCTAVE_API charNDArray max (const charNDArray& m, char d);
111 extern OCTAVE_API charNDArray max (const charNDArray& a, const charNDArray& b);
112 
113 NDS_CMP_OP_DECLS (charNDArray, char, OCTAVE_API)
114 NDS_BOOL_OP_DECLS (charNDArray, char, OCTAVE_API)
115 
116 SND_CMP_OP_DECLS (char, charNDArray, OCTAVE_API)
117 SND_BOOL_OP_DECLS (char, charNDArray, OCTAVE_API)
118 
119 NDND_CMP_OP_DECLS (charNDArray, charNDArray, OCTAVE_API)
120 NDND_BOOL_OP_DECLS (charNDArray, charNDArray, OCTAVE_API)
121 
122 BSXFUN_STDREL_DECLS (charNDArray, OCTAVE_API)
123 
124 #endif
dim_vector dimensions
Definition: Array.h:127
octave_idx_type compute_index(octave_idx_type n, const dim_vector &dims)
Definition: Array-util.cc:178
const octave_base_value const Array< octave_idx_type > & ra_idx
#define BSXFUN_STDREL_DECLS(ARRAY, API)
Definition: bsxfun-decl.h:51
#define NDND_CMP_OP_DECLS(ND1, ND2, API)
Definition: mx-op-decl.h:216
OCTAVE_API charNDArray min(char d, const charNDArray &m)
Definition: chNDArray.cc:210
charNDArray(void)
Definition: chNDArray.h:43
#define SND_BOOL_OP_DECLS(S, ND, API)
Definition: mx-op-decl.h:197
charNDArray(const Array< char > &a)
Definition: chNDArray.h:51
ComplexNDArray concat(NDArray &ra, ComplexNDArray &rb, const Array< octave_idx_type > &ra_idx)
Definition: CNDArray.cc:664
#define NDND_BOOL_OP_DECLS(ND1, ND2, API)
Definition: mx-op-decl.h:224
charNDArray(const dim_vector &dv)
Definition: chNDArray.h:45
#define NDS_BOOL_OP_DECLS(ND, S, API)
Definition: mx-op-decl.h:170
F77_RET_T const double const double double * d
#define NDS_CMP_OP_DECLS(ND, S, API)
Definition: mx-op-decl.h:162
#define SND_CMP_OP_DECLS(S, ND, API)
Definition: mx-op-decl.h:189
charNDArray(const charNDArray &a)
Definition: chNDArray.h:49
bool any_element_is_nan(void) const
Definition: chNDArray.h:67
void increment_index(Array< octave_idx_type > &ra_idx, const dim_vector &dimensions, int start_dimension)
Definition: Array-util.cc:59
boolMatrix all(int dim=-1) const
Definition: CMatrix.cc:3119
Array< T > squeeze(void) const
Chop off leading singleton dimensions.
Definition: Array.cc:114
boolMatrix any(int dim=-1) const
Definition: CMatrix.cc:3125
OCTAVE_API charNDArray max(char d, const charNDArray &m)
Definition: chNDArray.cc:233
charMatrix matrix_type
Definition: chNDArray.h:41
ComplexNDArray & operator=(const ComplexNDArray &a)
Definition: CNDArray.h:55
ComplexMatrix & insert(const Matrix &a, octave_idx_type r, octave_idx_type c)
Definition: CMatrix.cc:400
charNDArray squeeze(void) const
Definition: chNDArray.h:87
ComplexMatrix diag(octave_idx_type k=0) const
Definition: CMatrix.cc:3167
charNDArray(const dim_vector &dv, char val)
Definition: chNDArray.h:47
Array< T > & operator=(const Array< T > &a)
Definition: Array.h:226
Array< Complex > index(const idx_vector &i) const
Indexing without resizing.