GNU Octave  9.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fRowVector.h
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright (C) 1994-2024 The Octave Project Developers
4 //
5 // See the file COPYRIGHT.md in the top-level directory of this
6 // distribution or <https://octave.org/copyright/>.
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
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // Octave is distributed in the hope that it will be useful, but
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU General Public License for more details.
19 //
20 // You should have received a copy of the GNU General Public License
21 // along with Octave; see the file COPYING. If not, see
22 // <https://www.gnu.org/licenses/>.
23 //
24 ////////////////////////////////////////////////////////////////////////
25 
26 #if ! defined (octave_fRowVector_h)
27 #define octave_fRowVector_h 1
28 
29 #include "octave-config.h"
30 
31 #include "MArray.h"
32 #include "mx-defs.h"
33 
34 class
37 {
38 public:
39 
40  FloatRowVector () : MArray<float> (dim_vector (1, 0)) { }
41 
43  : MArray<float> (dim_vector (1, n)) { }
44 
45  explicit FloatRowVector (const dim_vector& dv)
46  : MArray<float> (dv.as_row ()) { }
47 
49  : MArray<float> (dim_vector (1, n), val) { }
50 
51  FloatRowVector (const FloatRowVector& a) : MArray<float> (a) { }
52 
53  FloatRowVector (const MArray<float>& a) : MArray<float> (a.as_row ()) { }
54 
55  FloatRowVector (const Array<float>& a) : MArray<float> (a.as_row ()) { }
56 
57  FloatRowVector& operator = (const FloatRowVector& a)
58  {
60  return *this;
61  }
62 
63  ~FloatRowVector () = default;
64 
65  OCTAVE_API bool operator == (const FloatRowVector& a) const;
66  OCTAVE_API bool operator != (const FloatRowVector& a) const;
67 
68  // destructive insert/delete/reorder operations
69 
71  insert (const FloatRowVector& a, octave_idx_type c);
72 
73  OCTAVE_API FloatRowVector& fill (float val);
75  fill (float val, octave_idx_type c1, octave_idx_type c2);
76 
77  OCTAVE_API FloatRowVector append (const FloatRowVector& a) const;
78 
79  OCTAVE_API FloatColumnVector transpose () const;
80 
83 
84  // resize is the destructive equivalent for this one
85 
87  extract (octave_idx_type c1, octave_idx_type c2) const;
88 
90  extract_n (octave_idx_type c1, octave_idx_type n) const;
91 
92  // row vector by matrix -> row vector
93 
95  operator * (const FloatRowVector& a, const FloatMatrix& b);
96 
97  // other operations
98 
99  OCTAVE_API float min () const;
100  OCTAVE_API float max () const;
101 
102  // i/o
103 
104  friend OCTAVE_API std::ostream&
105  operator << (std::ostream& os, const FloatRowVector& a);
106  friend OCTAVE_API std::istream&
107  operator >> (std::istream& is, FloatRowVector& a);
108 
109  void resize (octave_idx_type n, const float& rfv = 0)
110  {
111  Array<float>::resize (dim_vector (1, n), rfv);
112  }
113 
115  { Array<float>::clear (1, n); }
116 
117 };
118 
119 // row vector by column vector -> scalar
120 
121 float OCTAVE_API operator * (const FloatRowVector& a,
122  const FloatColumnVector& b);
123 
125  const ComplexColumnVector& b);
126 
127 // other operations
128 
129 OCTAVE_API FloatRowVector linspace (float x1, float x2, octave_idx_type n);
130 
132 
133 #endif
template std::ostream & operator<<(std::ostream &, const Array< bool > &)
#define MARRAY_FORWARD_DEFS(B, R, T)
Definition: MArray.h:130
std::istream & operator>>(std::istream &is, SparseBoolMatrix &a)
Definition: boolSparse.cc:279
charNDArray max(char d, const charNDArray &m)
Definition: chNDArray.cc:230
charNDArray min(char d, const charNDArray &m)
Definition: chNDArray.cc:207
N Dimensional Array with copy-on-write semantics.
Definition: Array.h:130
void clear()
Definition: Array-base.cc:109
void resize(const dim_vector &dv, const T &rfv)
Size of the specified dimension.
Definition: Array-base.cc:1023
FloatRowVector(const dim_vector &dv)
Definition: fRowVector.h:45
FloatRowVector(const Array< float > &a)
Definition: fRowVector.h:55
~FloatRowVector()=default
FloatRowVector(octave_idx_type n)
Definition: fRowVector.h:42
void clear(octave_idx_type n)
Definition: fRowVector.h:114
FloatRowVector(const FloatRowVector &a)
Definition: fRowVector.h:51
FloatRowVector(octave_idx_type n, float val)
Definition: fRowVector.h:48
void resize(octave_idx_type n, const float &rfv=0)
Definition: fRowVector.h:109
FloatRowVector(const MArray< float > &a)
Definition: fRowVector.h:53
MArray< T > & operator=(const MArray< T > &a)
Definition: MArray.h:81
Vector representing the dimensions (size) of an Array.
Definition: dim-vector.h:94
ColumnVector real(const ComplexColumnVector &a)
Definition: dColVector.cc:137
ColumnVector imag(const ComplexColumnVector &a)
Definition: dColVector.cc:143
bool operator!=(const dim_vector &a, const dim_vector &b)
Definition: dim-vector.h:536
bool operator==(const dim_vector &a, const dim_vector &b)
Definition: dim-vector.h:520
FloatRowVector linspace(float x1, float x2, octave_idx_type n)
Definition: fRowVector.cc:271
float operator*(const FloatRowVector &a, const FloatColumnVector &b)
Definition: fRowVector.cc:330
#define OCTAVE_API
Definition: main.cc:55
octave_idx_type n
Definition: mx-inlines.cc:761
std::complex< double > Complex
Definition: oct-cmplx.h:33