Mercurial > hg > octave-nkf
annotate liboctave/DiagArray2.h @ 8870:eea0e1b45ec0
optimize string manipulation in lookfor
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Wed, 25 Feb 2009 10:21:33 +0100 |
parents | 937921654627 |
children | f5408862892f |
rev | line source |
---|---|
1993 | 1 // Template array classes |
1988 | 2 /* |
3 | |
7017 | 4 Copyright (C) 1996, 1997, 2000, 2002, 2003, 2004, 2005, 2006, 2007 |
5 John W. Eaton | |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
6 Copyright (C) 2008, 2009 Jaroslav Hajek |
1988 | 7 |
8 This file is part of Octave. | |
9 | |
10 Octave is free software; you can redistribute it and/or modify it | |
11 under the terms of the GNU General Public License as published by the | |
7016 | 12 Free Software Foundation; either version 3 of the License, or (at your |
13 option) any later version. | |
1988 | 14 |
15 Octave is distributed in the hope that it will be useful, but WITHOUT | |
16 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
17 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
18 for more details. | |
19 | |
20 You should have received a copy of the GNU General Public License | |
7016 | 21 along with Octave; see the file COPYING. If not, see |
22 <http://www.gnu.org/licenses/>. | |
1988 | 23 |
24 */ | |
25 | |
26 #if !defined (octave_DiagArray2_h) | |
27 #define octave_DiagArray2_h 1 | |
28 | |
29 #include <cassert> | |
30 #include <cstdlib> | |
31 | |
4645 | 32 #include "Array.h" |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
33 #include "Array2.h" |
1988 | 34 #include "lo-error.h" |
35 | |
36 // A two-dimensional array with diagonal elements only. | |
37 // Idea and example code for Proxy class and functions from: | |
38 // | |
39 // From: kanze@us-es.sel.de (James Kanze) | |
40 // Subject: Re: How to overload [] to do READ/WRITE differently ? | |
41 // Message-ID: <KANZE.93Nov29151407@slsvhdt.us-es.sel.de> | |
42 // Sender: news@us-es.sel.de | |
43 // Date: 29 Nov 1993 14:14:07 GMT | |
44 // -- | |
45 // James Kanze email: kanze@us-es.sel.de | |
46 // GABI Software, Sarl., 8 rue du Faisan, F-67000 Strasbourg, France | |
47 | |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
48 // Array<T> is inherited privately so that some methods, like index, don't |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
49 // produce unexpected results. |
8375
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
50 |
1988 | 51 template <class T> |
3585 | 52 class |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
53 DiagArray2 : protected Array<T> |
1988 | 54 { |
55 private: | |
56 | |
5275 | 57 T get (octave_idx_type i) { return Array<T>::xelem (i); } |
1988 | 58 |
5275 | 59 void set (const T& val, octave_idx_type i) { Array<T>::xelem (i) = val; } |
1988 | 60 |
61 class Proxy | |
62 { | |
63 public: | |
64 | |
5275 | 65 Proxy (DiagArray2<T> *ref, octave_idx_type r, octave_idx_type c) |
1988 | 66 : i (r), j (c), object (ref) { } |
67 | |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
68 const Proxy& operator = (const T& val) const; |
1988 | 69 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
70 operator T () const; |
1988 | 71 |
72 private: | |
73 | |
5775 | 74 // FIXME -- this is declared private to keep the user from |
1988 | 75 // taking the address of a Proxy. Maybe it should be implemented |
76 // by means of a companion function in the DiagArray2 class. | |
77 | |
5760 | 78 T *operator& () const { assert (0); return 0; } |
1988 | 79 |
5275 | 80 octave_idx_type i; |
81 octave_idx_type j; | |
1988 | 82 |
83 DiagArray2<T> *object; | |
84 | |
85 }; | |
86 | |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
87 friend class Proxy; |
1988 | 88 |
89 protected: | |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
90 octave_idx_type d1, d2; |
1988 | 91 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
92 DiagArray2 (T *d, octave_idx_type r, octave_idx_type c) |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
93 : Array<T> (d, std::min (r, c)), d1 (r), d2 (c) { } |
1988 | 94 |
95 public: | |
96 | |
8375
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
97 typedef T element_type; |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
98 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
99 DiagArray2 (void) |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
100 : Array<T> (), d1 (0), d2 (0) { } |
1988 | 101 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
102 DiagArray2 (octave_idx_type r, octave_idx_type c) |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
103 : Array<T> (std::min (r, c)), d1 (r), d2 (c) { } |
4513 | 104 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
105 DiagArray2 (octave_idx_type r, octave_idx_type c, const T& val) |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
106 : Array<T> (std::min (r, c), val), d1 (r), d2 (c) { } |
1988 | 107 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
108 DiagArray2 (const Array<T>& a) |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
109 : Array<T> (a), d1 (a.numel ()), d2 (a.numel ()) { } |
1988 | 110 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
111 DiagArray2 (const DiagArray2<T>& a) |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
112 : Array<T> (a), d1 (a.d1), d2 (a.d2) { } |
1988 | 113 |
8366
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
114 template <class U> |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
115 DiagArray2 (const DiagArray2<U>& a) |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
116 : Array<T> (a.diag ()), d1 (a.dim1 ()), d2 (a.dim2 ()) { } |
8366
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
117 |
1988 | 118 ~DiagArray2 (void) { } |
119 | |
120 DiagArray2<T>& operator = (const DiagArray2<T>& a) | |
121 { | |
122 if (this != &a) | |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
123 { |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
124 Array<T>::operator = (a); |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
125 d1 = a.d1; |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
126 d2 = a.d2; |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
127 } |
1988 | 128 |
129 return *this; | |
130 } | |
131 | |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
132 octave_idx_type dim1 (void) const { return d1; } |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
133 octave_idx_type dim2 (void) const { return d2; } |
8375
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
134 |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
135 octave_idx_type rows (void) const { return dim1 (); } |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
136 octave_idx_type cols (void) const { return dim2 (); } |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
137 octave_idx_type columns (void) const { return dim2 (); } |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
138 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
139 // FIXME: a dangerous ambiguity? |
8375
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
140 octave_idx_type length (void) const { return Array<T>::length (); } |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
141 octave_idx_type nelem (void) const { return dim1 () * dim2 (); } |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
142 octave_idx_type numel (void) const { return nelem (); } |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
143 |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
144 size_t byte_size (void) const { return length () * sizeof (T); } |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
145 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
146 dim_vector dims (void) const { return dim_vector (d1, d2); } |
8375
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
147 |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
148 Array<T> diag (octave_idx_type k = 0) const; |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
149 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
150 // Warning: the non-const two-index versions will silently ignore assignments |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
151 // to off-diagonal elements. |
1988 | 152 |
8366
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
153 T elem (octave_idx_type r, octave_idx_type c) const |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
154 { |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
155 return (r == c) ? Array<T>::elem (r) : T (0); |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
156 } |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
157 |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
158 T& elem (octave_idx_type r, octave_idx_type c) |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
159 { |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
160 static T zero (0); |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
161 return (r == c) ? Array<T>::elem (r) : zero; |
8366
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
162 } |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
163 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
164 T dgelem (octave_idx_type i) const |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
165 { return Array<T>::elem (i); } |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
166 |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
167 T& dgelem (octave_idx_type i) |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
168 { return Array<T>::elem (i); } |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
169 |
5275 | 170 T checkelem (octave_idx_type r, octave_idx_type c) const; |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
171 Proxy checkelem (octave_idx_type r, octave_idx_type c); |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
172 |
8366
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
173 T operator () (octave_idx_type r, octave_idx_type c) const |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
174 { |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
175 #if defined (BOUNDS_CHECKING) |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
176 return checkelem (r, c); |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
177 #else |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
178 return elem (r, c); |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
179 #endif |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
180 } |
1988 | 181 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
182 // FIXME: can this cause problems? |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
183 #if defined (BOUNDS_CHECKING) |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
184 Proxy operator () (octave_idx_type r, octave_idx_type c) |
8366
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
185 { |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
186 return checkelem (r, c); |
8366
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
187 } |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
188 #else |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
189 T& operator () (octave_idx_type r, octave_idx_type c) |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
190 { |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
191 return elem (r, c); |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
192 } |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
193 #endif |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
194 |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
195 // No checking. |
8366
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
196 |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
197 T xelem (octave_idx_type r, octave_idx_type c) const |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
198 { |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
199 return (r == c) ? Array<T>::xelem (r) : T (0); |
8b1a2555c4e2
implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents:
8314
diff
changeset
|
200 } |
1988 | 201 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
202 T& dgxelem (octave_idx_type i) |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
203 { return Array<T>::xelem (i); } |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
204 |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
205 T dgxelem (octave_idx_type i) const |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
206 { return Array<T>::xelem (i); } |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
207 |
5275 | 208 void resize (octave_idx_type n, octave_idx_type m); |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
209 void resize_fill (octave_idx_type n, octave_idx_type m, const T& val); |
1988 | 210 |
7789
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
7017
diff
changeset
|
211 DiagArray2<T> transpose (void) const; |
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
7017
diff
changeset
|
212 DiagArray2<T> hermitian (T (*fcn) (const T&) = 0) const; |
8375
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
213 |
8524
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
214 operator Array2<T> (void) const; |
937921654627
clean up Array and DiagArray2
Jaroslav Hajek <highegg@gmail.com>
parents:
8375
diff
changeset
|
215 |
8375
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
216 const T *data (void) const { return Array<T>::data (); } |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
217 |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
218 const T *fortran_vec (void) const { return Array<T>::fortran_vec (); } |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
219 |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
220 T *fortran_vec (void) { return Array<T>::fortran_vec (); } |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
221 |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
222 void print_info (std::ostream& os, const std::string& prefix) const |
e3c9102431a9
fix design problems of diag & perm matrix classes
Jaroslav Hajek <highegg@gmail.com>
parents:
8366
diff
changeset
|
223 { Array<T>::print_info (os, prefix); } |
1988 | 224 }; |
225 | |
226 #endif | |
227 | |
228 /* | |
229 ;;; Local Variables: *** | |
230 ;;; mode: C++ *** | |
231 ;;; End: *** | |
232 */ |