ARTS
2.2.66
|
#include <matpackI.h>
Public Member Functions | |
Vector () | |
Default constructor. More... | |
Vector (Index n) | |
Constructor setting size. More... | |
Vector (Index n, Numeric fill) | |
Constructor setting size and filling with constant value. More... | |
Vector (Numeric start, Index extent, Numeric stride) | |
Constructor filling with values. More... | |
Vector (const ConstVectorView &v) | |
Copy constructor from VectorView. More... | |
Vector (const Vector &v) | |
Copy constructor from Vector. More... | |
Vector (const std::vector< Numeric > &) | |
Converting constructor from std::vector<Numeric>. More... | |
Vector & | operator= (Vector v) |
Assignment from another Vector. More... | |
Vector & | operator= (const Array< Numeric > &v) |
Assignment operator from Array<Numeric>. More... | |
Vector & | operator= (Numeric x) |
Assignment operator from scalar. More... | |
void | resize (Index n) |
Assignment operator from VectorView. More... | |
virtual | ~Vector () |
Destructor for Vector. More... | |
Public Member Functions inherited from VectorView | |
VectorView (const Vector &) | |
Bail out immediately if somebody tries to create a VectorView from a const Vector. More... | |
VectorView (Vector &v) | |
Create VectorView from a Vector. More... | |
Numeric | operator[] (Index n) const |
Plain const index operator. More... | |
Numeric | get (Index n) const |
Get element implementation without assertions. More... | |
ConstVectorView | operator[] (const Range &r) const |
Const index operator for subrange. More... | |
Numeric & | operator[] (Index n) |
Plain Index operator. More... | |
Numeric & | get (Index n) |
Get element implementation without assertions. More... | |
VectorView | operator[] (const Range &r) |
Index operator for subrange. More... | |
ConstIterator1D | begin () const |
Return const iterator to first element. More... | |
ConstIterator1D | end () const |
Return const iterator behind last element. More... | |
Iterator1D | begin () |
Return iterator to first element. More... | |
Iterator1D | end () |
Return iterator behind last element. More... | |
VectorView & | operator= (const ConstVectorView &v) |
Assignment operator. More... | |
VectorView & | operator= (const VectorView &v) |
Assignment from VectorView to VectorView. More... | |
VectorView & | operator= (const Vector &v) |
Assignment from Vector. More... | |
VectorView & | operator= (const Array< Numeric > &v) |
Assignment operator from Array<Numeric>. More... | |
VectorView & | operator= (Numeric x) |
Assigning a scalar to a VectorView will set all elements to this value. More... | |
VectorView | operator*= (Numeric x) |
Multiplication by scalar. More... | |
VectorView | operator/= (Numeric x) |
Division by scalar. More... | |
VectorView | operator+= (Numeric x) |
Addition of scalar. More... | |
VectorView | operator-= (Numeric x) |
Subtraction of scalar. More... | |
VectorView | operator*= (const ConstVectorView &x) |
Element-vise multiplication by another vector. More... | |
VectorView | operator/= (const ConstVectorView &x) |
Element-vise division by another vector. More... | |
VectorView | operator+= (const ConstVectorView &x) |
Element-vise addition of another vector. More... | |
VectorView | operator-= (const ConstVectorView &x) |
Element-vise subtraction of another vector. More... | |
operator MatrixView () | |
Conversion to 1 column matrix. More... | |
const Numeric * | get_c_array () const |
Conversion to plain C-array. More... | |
Numeric * | get_c_array () |
Conversion to plain C-array. More... | |
virtual | ~VectorView () |
Destructor. More... | |
VectorView (Numeric &a) | |
A special constructor, which allows to make a VectorView from a scalar. More... | |
Public Member Functions inherited from ConstVectorView | |
Index | nelem () const |
Returns the number of elements. More... | |
Numeric | sum () const |
The sum of all elements of a Vector. More... | |
Numeric | operator[] (Index n) const |
Plain const index operator. More... | |
Numeric | get (Index n) const |
Get element implementation without assertions. More... | |
ConstVectorView | operator[] (const Range &r) const |
Const index operator for subrange. More... | |
ConstIterator1D | begin () const |
Return const iterator to first element. More... | |
ConstIterator1D | end () const |
Return const iterator behind last element. More... | |
operator ConstMatrixView () const | |
Conversion to const 1 column matrix. More... | |
virtual | ~ConstVectorView () |
Destructor. More... | |
ConstVectorView (const Numeric &a) | |
A special constructor, which allows to make a ConstVectorView from a scalar. More... | |
Friends | |
void | swap (Vector &v1, Vector &v2) |
Swaps two objects. More... | |
Additional Inherited Members | |
Public Types inherited from VectorView | |
typedef Iterator1D | iterator |
Public Types inherited from ConstVectorView | |
typedef ConstIterator1D | const_iterator |
Protected Member Functions inherited from VectorView | |
VectorView () | |
Default constructor. More... | |
VectorView (Numeric *data, const Range &range) | |
Explicit constructor. More... | |
VectorView (Numeric *data, const Range &p, const Range &n) | |
Recursive constructor. More... | |
Protected Member Functions inherited from ConstVectorView | |
ConstVectorView () | |
Default constructor. More... | |
ConstVectorView (Numeric *data, const Range &range) | |
Explicit constructor. More... | |
ConstVectorView (Numeric *data, const Range &p, const Range &n) | |
Recursive constructor. More... | |
Protected Attributes inherited from ConstVectorView | |
Range | mrange |
The range of mdata that is actually used. More... | |
Numeric * | mdata |
Pointer to the plain C array that holds the data. More... | |
The Vector class.
This is a subvector that also allocates storage automatically, and deallocates it when it is destroyed. We take all the functionality from VectorView. Additionally defined in this class are:
Definition at line 556 of file matpackI.h.
Vector::Vector | ( | ) |
Default constructor.
Definition at line 639 of file matpackI.cc.
|
explicit |
Constructor setting size.
Definition at line 645 of file matpackI.cc.
Constructor setting size and filling with constant value.
Definition at line 653 of file matpackI.cc.
References ConstVectorView::mdata.
Constructor filling with values.
Examples:
Vector v(1,5,1); // 1, 2, 3, 4, 5 Vector v(1,5,.5); // 1, 1.5, 2, 2.5, 3 Vector v(5,5,-1); // 5, 4, 3, 2, 1
Definition at line 672 of file matpackI.cc.
References VectorView::begin(), and VectorView::end().
Vector::Vector | ( | const ConstVectorView & | v | ) |
Copy constructor from VectorView.
This automatically sets the size and copies the data. The vector created will have start zero and stride 1, independent on how these parameters are set for the original. So, what is copied is the data, not the shape of the selection.
Definition at line 692 of file matpackI.cc.
References ConstVectorView::begin(), VectorView::begin(), copy(), and ConstVectorView::end().
Vector::Vector | ( | const Vector & | v | ) |
Copy constructor from Vector.
This is important to override the automatically generated shallow constructor. We want deep copies!
Definition at line 701 of file matpackI.cc.
References VectorView::begin(), copy(), and VectorView::end().
Vector::Vector | ( | const std::vector< Numeric > & | v | ) |
Converting constructor from std::vector<Numeric>.
Definition at line 709 of file matpackI.cc.
References VectorView::begin(), and VectorView::end().
|
virtual |
Destructor for Vector.
This is important, since Vector uses new to allocate storage.
Definition at line 822 of file matpackI.cc.
References ConstVectorView::mdata.
Assignment from another Vector.
While dimensions of VectorViews can not be adjusted, dimensions of Vectors can be adjusted. Hence, the behavior of the assignment operator is different.
In this case the size of the target is automatically adjusted. This is important, so that structures containing Vectors are copied correctly.
This is a deviation from the old ARTS paradigm that sizes must match exactly before copying!
Note: It is sufficient to have only this one version of the assignment (Vector = Vector). It implicitly covers the cases Vector=VectorView, etc, because there is a default constructor for Vector from VectorView. (See C++ Primer Plus, page 571ff.)
v | The other vector to copy to this one. |
Definition at line 746 of file matpackI.cc.
References swap.
Assignment operator from Array<Numeric>.
This copies the data from a Array<Numeric> to this VectorView. The size is adjusted automatically.
Array<Numeric> can be useful to collect things in, because there is a .push_back method for it. Then, after collecting we usually have to transfer the content to a Vector. With this assignment operator that's easy.
x | The array to assign to this. |
Definition at line 769 of file matpackI.cc.
References Array< base >::nelem(), VectorView::operator=(), and resize().
Assignment operator from scalar.
Assignment operators are not inherited.
Definition at line 778 of file matpackI.cc.
References VectorView::operator=().
void Vector::resize | ( | Index | n | ) |
Assignment operator from VectorView.
Assignment operators are not inherited. Resize function. If the size is already correct this function does nothing. All data is lost after resizing! The new Vector is not initialized, so it will contain random values.
Definition at line 798 of file matpackI.cc.
References ConstVectorView::mdata, Range::mextent, ConstVectorView::mrange, Range::mstart, and Range::mstride.
Referenced by abs_h2oSet(), abs_lookupCalc(), abs_lookupSetup(), abs_lookupSetupBatch(), abs_lookupSetupWide(), abs_lookupTestAccMC(), abs_n2Set(), abs_o2Set(), AbsInputFromRteScalars(), GasAbsLookup::Adapt(), AntennaConstantGaussian1D(), AntennaOff(), AntennaSet1D(), Append(), LineRecord::ARTSCAT4FromARTSCAT3(), AtmosphereSet1D(), AtmosphereSet2D(), blackbody_radiationPlanck(), cloud_RT_surface(), cloudbox_checkedCalc(), cum_l_stepCalc(), defocusing_general_sub(), dN_Ar_H13(), dN_F07ML(), dN_F07TR(), dN_H11(), dN_H98(), dN_MGD_IWC(), dN_MGD_LWC(), dN_MH97(), do_gridcell_2d_byltest(), do_gridcell_3d(), do_gridcell_3d_byltest(), GasAbsLookup::Extract(), ExtractFromMetaSinglePartSpecies(), f_gridFromGasAbsLookup(), find_effective_channel_boundaries(), findZ11max(), fos(), FrequencyFromWavelength(), gaussian_response(), geompath_from_r1_to_r2(), get_iy_of_background(), get_ppath_atmvars(), get_ppath_trans(), get_ppath_trans2(), get_refr_index_1d(), get_refr_index_2d(), get_refr_index_3d(), iyb_calc(), iyEmissionStandard(), jacobianAddFreqShift(), jacobianAddFreqStretch(), jacobianAddPointingZa(), linreg(), linspace(), los3d(), MCGeneral(), MCIPA(), mirror_los(), mixer_matrix(), nca_get_data_Vector(), nca_read_from_file(), nlinspace(), nlogspace(), operator=(), opt_prop_sptFromData(), p_gridDensify(), p_gridFromGasAbsLookup(), ArtsParser::parse_numvector(), ArtsParser::parse_numvector_from_string(), pndFromdN(), polynomial_basis_func(), ppath_init_structure(), LineRecord::ReadFromArtscat4Stream(), CIARecord::ReadFromCIA(), readppdata(), Reduce(), refellipsoidEarth(), refellipsoidJupiter(), refellipsoidMars(), refellipsoidMoon(), refellipsoidSet(), refellipsoidVenus(), rte_losGeometricFromRtePosToRtePos2(), rte_losSet(), rte_posSet(), ScatteringMergeParticles1D(), sensor_aux_vectors(), sensor_responseBeamSwitching(), sensor_responseFrequencySwitching(), sensor_responseGenericAMSU(), sensor_responseMultiMixerBackend(), sensor_responseSimpleAMSU(), specular_losCalc(), surface_scalar_reflectivityFromGriddedField4(), TangentPointExtract(), test1(), test45(), test_and_merge_two_channels(), tmatrix_random_orientation(), VectorAddScalar(), VectorCrop(), VectorExtractFromMatrix(), vectorfield2los(), VectorFlip(), VectorInsertGridPoints(), VectorMatrixMultiply(), VectorScale(), VectorSetConstant(), VectorZtanToZa1D(), VectorZtanToZaRefr1D(), xml_parse_from_stream(), ybatchMetProfiles(), ybatchMetProfilesClear(), yCalc(), yCalcAppend(), yCloudRadar(), ySimpleSpectrometer(), and za_gridOpt().