ARTS 2.5.0 (git: 9ee3ac6c)
ConstVectorView Class Reference

A constant view of a Vector. More...

#include <matpackI.h>

Inheritance diagram for ConstVectorView:
VectorView Vector

Public Types

typedef ConstIterator1D const_iterator
 

Public Member Functions

constexpr ConstVectorView (const ConstVectorView &)=default
 
constexpr ConstVectorView (ConstVectorView &&)=default
 
ConstVectorViewoperator= (const ConstVectorView &)=default
 
ConstVectorViewoperator= (ConstVectorView &&)=default
 
bool empty () const ARTS_NOEXCEPT
 Returns true if variable size is zero. More...
 
Index nelem () const ARTS_NOEXCEPT
 Returns the number of elements. More...
 
Index size () const ARTS_NOEXCEPT
 
Numeric sum () const ARTS_NOEXCEPT
 The sum of all elements of a Vector. More...
 
Numeric operator[] (Index n) const ARTS_NOEXCEPT
 Plain const index operator. More...
 
Numeric get (Index n) const ARTS_NOEXCEPT
 Get element implementation without assertions. More...
 
ConstVectorView operator[] (const Range &r) const ARTS_NOEXCEPT
 Const index operator for subrange. More...
 
ConstIterator1D begin () const ARTS_NOEXCEPT
 Return const iterator to first element. More...
 
ConstIterator1D end () const ARTS_NOEXCEPT
 Return const iterator behind last element. More...
 
 operator ConstMatrixView () const
 Conversion to const 1 column matrix. More...
 
virtual ~ConstVectorView ()=default
 Destructor. More...
 
 ConstVectorView (const Numeric &a) ARTS_NOEXCEPT
 A special constructor, which allows to make a ConstVectorView from a scalar. More...
 

Protected Member Functions

 ConstVectorView ()=default
 
 ConstVectorView (Numeric *data, const Range &range) ARTS_NOEXCEPT
 Explicit constructor. More...
 
 ConstVectorView (Numeric *data, const Range &p, const Range &n) ARTS_NOEXCEPT
 Recursive constructor. More...
 

Protected Attributes

Range mrange {0, 0}
 The range of mdata that is actually used. More...
 
Numericmdata {nullptr}
 Pointer to the plain C array that holds the data. More...
 

Friends

class VectorView
 
class ConstIterator2D
 
class ConstMatrixView
 
class ConstTensor3View
 
class ConstTensor4View
 
class ConstTensor5View
 
class ConstTensor6View
 
class ConstTensor7View
 
class ConstComplexVectorView
 
Numeric operator* (const ConstVectorView &a, const ConstVectorView &b) ARTS_NOEXCEPT
 Scalar product. More...
 
int poly_root_solve (Matrix &roots, Vector &coeffs)
 
void mult (VectorView, const ConstMatrixView &, const ConstVectorView &)
 Matrix-Vector Multiplication. More...
 
void mult (VectorView, const Sparse &, ConstVectorView)
 Sparse matrix - Vector multiplication. More...
 
void transpose_mult (VectorView, const Sparse &, ConstVectorView)
 Sparse matrix - Vector multiplication. More...
 
void mult_general (VectorView, const ConstMatrixView &, const ConstVectorView &) ARTS_NOEXCEPT
 Matrix Vector multiplication. More...
 
void lubacksub (VectorView, ConstMatrixView, ConstVectorView, const ArrayOfIndex &)
 LU backsubstitution. More...
 
void diagonalize (MatrixView, VectorView, VectorView, ConstMatrixView)
 Matrix Diagonalization. More...
 
ConstMatrixViewMap MapToEigen (const ConstVectorView &)
 
ConstMatrixViewMap MapToEigenCol (const ConstVectorView &)
 
MatrixViewMap MapToEigen (VectorView &)
 
MatrixViewMap MapToEigenCol (VectorView &)
 

Detailed Description

A constant view of a Vector.

Together with the derived class VectorView this contains the main implementation of a Vector. The class Vector is just a special case of a VectorView which also allocates storage.

Definition at line 489 of file matpackI.h.

Member Typedef Documentation

◆ const_iterator

Definition at line 497 of file matpackI.h.

Constructor & Destructor Documentation

◆ ConstVectorView() [1/6]

constexpr ConstVectorView::ConstVectorView ( const ConstVectorView )
constexprdefault

◆ ConstVectorView() [2/6]

constexpr ConstVectorView::ConstVectorView ( ConstVectorView &&  )
constexprdefault

◆ ~ConstVectorView()

virtual ConstVectorView::~ConstVectorView ( )
virtualdefault

Destructor.

◆ ConstVectorView() [3/6]

ConstVectorView::ConstVectorView ( const Numeric a)

A special constructor, which allows to make a ConstVectorView from a scalar.

Definition at line 88 of file matpackI.cc.

◆ ConstVectorView() [4/6]

ConstVectorView::ConstVectorView ( )
protecteddefault

◆ ConstVectorView() [5/6]

ConstVectorView::ConstVectorView ( Numeric data,
const Range range 
)
protected

Explicit constructor.

This one is used by Vector to initialize its own VectorView part.

Definition at line 93 of file matpackI.cc.

◆ ConstVectorView() [6/6]

ConstVectorView::ConstVectorView ( Numeric data,
const Range p,
const Range n 
)
protected

Recursive constructor.

This is used to construct sub ranges from sub ranges. That means that the new range has to be interpreted relative to the original range. The new range may contain -1 for the extent which acts as a joker. However, the used Range constructor converts this to an explicit range, consistent with the original Range.

Parameters
*dataThe actual data.
pPrevious range.
nNew Range.

Definition at line 98 of file matpackI.cc.

Member Function Documentation

◆ begin()

◆ empty()

◆ end()

ConstIterator1D ConstVectorView::end ( ) const

Return const iterator behind last element.

Definition at line 70 of file matpackI.cc.

References mdata, Range::mextent, mrange, Range::mstart, and Range::mstride.

Referenced by VectorView::begin(), max(), mean(), min(), and transform().

◆ get()

Numeric ConstVectorView::get ( Index  n) const
inline

Get element implementation without assertions.

Definition at line 530 of file matpackI.h.

References mdata, mrange, Range::mstart, and Range::mstride.

Referenced by interp(), and operator[]().

◆ nelem()

Index ConstVectorView::nelem ( ) const

Returns the number of elements.

The names ‘size’ and ‘length’ are already used by STL functions returning size_t. To avoid confusion we choose the name ‘nelem’. This is also more consistent with ‘nrow’ and ‘ncol’ for matrices.

The value range of long, which is used to store the index is on a PC from -2147483648 to 2147483647. This means that a 15GB large array of float can be addressed with this index. So the extra bit that size_t has compared to long is not needed.

Definition at line 48 of file matpackI.cc.

References Range::mextent, and mrange.

Referenced by abs_lines_per_speciesChangeBaseParameterForMatchingLevels(), abs_lines_per_speciesSetBaseParameterForMatchingLevels(), abs_linesChangeBaseParameterForMatchingLevels(), abs_linesSetBaseParameterForMatchingLevels(), abs_linesSetLineShapeModelParametersForMatchingLines(), abs_linesSetZeemanCoefficients(), abs_lookupSetup(), abs_xsec_per_speciesAddCIA(), abs_xsec_per_speciesAddConts(), abs_xsec_per_speciesAddHitranXsec(), abs_xsec_per_speciesAddLines(), abs_xsec_per_speciesInit(), AbsInputFromRteScalars(), GasAbsLookup::Adapt(), AddZaAa(), AngIntegrate_trapezoid(), AngIntegrate_trapezoid_fixedstep(), AngIntegrate_trapezoid_fixedstep_opt(), AngIntegrate_trapezoid_fixedstep_opt2(), AngIntegrate_trapezoid_opt(), AngIntegrate_trapezoid_opti(), AngIntegrate_trapezoid_original(), AngularGridsSetFluxCalc(), antenna1d_matrix(), antenna2d_gridded_dlos(), antenna2d_interp_response(), antenna_responseGaussian(), antenna_responseVaryingGaussian(), AntennaConstantGaussian1D(), Append(), CIARecord::AppendDataset(), apply_iy_unit(), apply_iy_unit2(), atm_fields_compactAddSpecies(), atm_fields_compactCreateFromField(), AtmFieldPerturbAtmGrids(), AtmFieldPRegrid(), AtmFieldPRegridHelper(), AtmFieldsCalc(), AtmFieldsCalcExpand1D(), AtmFieldsExpand1D(), AtmFieldsExtract1D(), atmgeom_checkedCalc(), AtmWithNLTERawRead(), backend_channel_responseGaussian(), bad_propmat(), BF86_CIA_N2(), bin_quadweights(), Absorption::Lines::BroadeningSpeciesMass(), calc_ssp_fixed_test(), calc_ssp_random_test(), calcBaselineFit(), calcSingleScatteringDataProperties(), calculate_weights_linear(), check_disort_input(), check_retrieval_grids(), GriddedField1::checksize(), chk_atm_field(), chk_atm_grids(), chk_atm_surface(), chk_if_equal(), chk_interpolation_grids(), chk_interpolation_grids_loose_check_data(), chk_interpolation_grids_loose_no_data_check(), chk_interpolation_pgrids(), chk_interpolation_pgrids_loose_no_data_check(), chk_latlon_true(), chk_pnd_data(), chk_rte_los(), chk_rte_pos(), chk_scat_data(), chk_scat_species_field(), chk_size(), chk_vector_length(), choose_abs_nls_pert(), choose_abs_t_pert(), cia_interpolation(), CKD24_H20(), CKD_222_foreign_h2o(), CKD_222_self_h2o(), CKD_241_co2(), CKD_242_foreign_h2o(), CKD_242_self_h2o(), CKD_mt_100_foreign_h2o(), CKD_mt_100_self_h2o(), CKD_mt_250_CIAfun_n2(), CKD_mt_250_CIArot_n2(), CKD_mt_250_co2(), CKD_mt_250_foreign_h2o(), CKD_mt_250_o2_vis(), CKD_mt_250_self_h2o(), CKD_mt_320_foreign_h2o(), CKD_mt_320_self_h2o(), CKD_mt_CIAfun_n2(), CKD_mt_CIAfun_o2(), CKD_mt_CIArot_n2(), CKD_mt_co2(), CKD_mt_v0v0_o2(), CKD_mt_v1v0_o2(), cloud_atm_vars_by_gp(), cloud_ppath_update3D(), cloud_RT_surface(), cloudbox_checkedCalc(), cloudbox_field_monoOptimizeReverse(), cloudbox_field_monoSetConst(), cloudbox_fieldSetFromPrecalc(), cloudbox_fieldUpdate1D(), cloudbox_fieldUpdateSeq1D(), cloudbox_fieldUpdateSeq1DPP(), cloudbox_fieldUpdateSeq3D(), cloudboxSetAutomatically(), cloudboxSetFullAtm(), cloudboxSetManually(), cloudboxSetManuallyAltitude(), lm_hitran_2017::compabs(), complex_n_ice_matzler06(), complex_n_interp(), complex_n_water_liebe93(), complex_refr_indexIceMatzler06(), complex_refr_indexWaterLiebe93(), lm_hitran_2017::compute(), ConvertAzimuthallyRandomSingleScatteringData(), convolve(), covmat1D(), covmat1DMarkov(), covmat_sxExtractSqrtDiagonal(), covmatDiagonal(), CP98H2OAbsModel(), create_covariance_matrix_1D(), create_sparse_covariance_matrix_1D(), createBji(), dampened_statistical_equilibrium_equation(), derive_scat_species_a_and_b(), describe(), DiagonalMatrix(), DiffZaAa(), DisortCalc(), DisortCalcWithARTSSurface(), diy_from_pos_to_rgrids(), doit_conv_flagAbs(), doit_conv_flagAbsBT(), doit_conv_flagLsq(), doit_scat_fieldCalc(), doit_scat_fieldCalcLimb(), doit_scat_fieldNormalize(), doit_za_grid_optCalc(), DoitCalc(), DoitGetIncoming(), DoitGetIncoming1DAtm(), DoitInit(), DoitScatteringDataPrepare(), dplanck_df(), dplanck_dt(), Absorption::LineMixing::ecs_absorption_impl(), Absorption::LineMixing::ecs_absorption_zeeman_impl(), ecs_dataSetMeanAir(), Absorption::LineMixing::ecs_eigenvalue_adaptation_test(), Absorption::LineMixing::ecs_eigenvalue_approximation(), Absorption::LineMixing::ecs_relaxation_matrix(), ELL07WaterDropletAbs(), emission_from_propmat_field(), empty(), lm_hitran_2017::eqvlines(), ext_matFromabs_vec(), GasAbsLookup::Extract(), XsecRecord::Extract(), f_gridFromGasAbsLookup(), f_gridFromSensorAMSU(), f_gridFromSensorAMSUgeneric(), f_gridFromSensorHIRS(), f_gridMetMM(), FastemStandAlone(), field_of_propagation(), FieldFromGriddedField(), find_effective_channel_boundaries(), find_new_grid_in_old_grid(), flat(), FouComp_1ScatElem(), FrequencyFromCGSAngularWavenumber(), FrequencyFromCGSKayserWavenumber(), FrequencyFromWavelength(), func_2straights(), gaussian_response(), get_disortsurf_props(), get_gasoptprop(), get_gp_rq_to_atmgrids(), get_iy_of_background(), get_maximum_error(), get_paroptprop(), get_parZ(), get_pmom(), get_ppath_f(), get_refr_index_2d(), get_refr_index_3d(), get_stepwise_blackbody_radiation(), get_stepwise_scattersky_source(), GriddedFieldLatLonRegrid(), GriddedFieldLatLonRegridHelper(), GriddedFieldPRegrid(), GriddedFieldPRegridHelper(), GriddedFieldZToPRegrid(), GriddedFieldZToPRegridHelper(), gridpos(), gridpos_1to1(), lm_hitran_2017::hitran_lm_eigenvalue_adaptation_test(), lm_hitran_2017::hitran_lm_eigenvalue_approximation(), Ho66_CO2_foreign_continuum(), Ho66_CO2_self_continuum(), IndexNumberOfAtmosphericPoints(), init_ifield(), init_x(), init_xy(), insert_elements(), integrate_convolved(), integrate_zenith(), interp_atmfield_by_itw(), interp_atmsurface_by_itw(), interp_cloud_coeff1D(), interp_cloudfield_gp2itw(), interp_poly(), irradiance_fieldFromRadiance(), is_decreasing(), is_increasing(), is_lon_cyclic(), is_size(), is_sorted(), itw2p(), iy_transmitterMultiplePol(), iy_transmitterSinglePol(), iyb_calc(), iyEmissionStandard(), iyHybrid(), iyIndependentBeamApproximation(), iyInterpCloudboxField(), iyLoopFrequencies(), iyMC(), iyRadarSingleScat(), iySurfaceFastem(), iySurfaceRtpropAgenda(), iySurfaceRtpropCalc(), iyTransmissionStandard(), jacobianAddFreqShift(), jacobianAddFreqStretch(), jacobianAddSinefit(), jacobianCalcFreqShift(), jacobianCalcFreqStretch(), jacobianCalcPointingZaInterp(), jacobianCalcPolyfit(), jacobianCalcSinefit(), jacobianFromTwoY(), jacobianFromYbatch(), jacobianSetAffineTransformation(), LagrangeInterpol4(), last(), line_irradianceCalcForSingleSpeciesNonOverlappingLinesPseudo2D(), linreg(), lon_shiftgrid(), MagFieldsCalc(), MagFieldsCalcExpand1D(), MagFieldsCalcIGRF(), Raw::Mask::mask(), MaTipping_H2O_foreign_continuum(), Matrix2ColFromVectors(), Matrix2RowFromVectors(), Matrix3ColFromVectors(), Matrix3RowFromVectors(), MatrixCBR(), MatrixPlanck(), MatrixUnitIntensity(), mblock_dlos_gridUniformCircular(), mblock_dlos_gridUniformRectangular(), MCGeneral(), mcPathTraceRadar(), MCRadar(), mgd(), mgd_with_derivatives(), mixer_matrix(), mock_data(), MPM02H2OAbsModel(), MPM85O2AbsModel(), MPM87H2OAbsModel(), MPM87O2AbsModel(), MPM89H2OAbsModel(), MPM89O2AbsModel(), MPM92O2AbsModel(), MPM93_H2O_continuum(), MPM93_N2_continuum(), MPM93_O2_continuum(), MPM93H2OAbsModel(), MPM93IceCrystalAbs(), MPM93O2AbsModel(), MPM93RainExt(), MPM93WaterDropletAbs(), mult(), Raw::Average::nanavg(), Raw::Average::nanvar(), nlte_fieldForSingleSpeciesNonOverlappingLines(), NumericFromVector(), EnergyLevelMap::OK(), ComplexVectorView::operator*=(), ComplexVectorView::operator+=(), ComplexVectorView::operator-=(), ComplexVectorView::operator/=(), Vector::operator=(), opt_prop_1ScatElem(), opt_prop_NScatElems(), opt_prop_sptFromData(), opt_prop_sptFromMonoData(), p2gridpos(), p_gridFromGasAbsLookup(), Pardo_ATM_H2O_ForeignContinuum(), Pardo_ATM_N2_dry_continuum(), PFromZSimple(), pha_mat_1ScatElem(), pha_mat_NScatElems(), pha_mat_sptFromData(), pha_mat_sptFromDataDOITOpt(), pha_mat_sptFromMonoData(), pha_mat_sptFromScat_data(), pha_matTransform(), planck(), plevel_slope_3d(), pnd_fieldCalcFromParticleBulkProps(), pnd_fieldZero(), pndFromPsd(), pndFromPsdBasic(), polynomial_basis_func(), pos2refell_r(), pos2true_latlon(), ppath_calc(), ppath_end_1d(), ppath_end_2d(), ppath_end_3d(), ppath_start_3d(), ppath_start_stepping(), ppath_step_geom_1d(), ppath_step_geom_2d(), ppath_step_geom_3d(), Print(), propmat_clearsky_fieldCalc(), propmat_clearskyAddFaraday(), propmat_clearskyAddHitranLineMixingLines(), propmat_clearskyAddLines(), propmat_clearskyAddOnTheFlyLineMixing(), propmat_clearskyAddOnTheFlyLineMixingWithZeeman(), propmat_clearskyAddParticles(), propmat_clearskyAddPredefinedO2MPM2020(), propmat_clearskyAddZeeman(), propmat_clearskyInit(), propmat_clearskyZero(), psd_cloudice_MH97(), psd_rain_W16(), psdMilbrandtYau05(), psdSeifertBeheng06(), PWR93O2AbsModel(), PWR98H2OAbsModel(), RadarOnionPeelingTableCalc(), RadiationFieldSpectralIntegrate(), raytrace_1d_linear_basic(), raytrace_2d_linear_basic(), raytrace_3d_linear_basic(), Reduce(), refell2r(), refellipsoidForAzimuth(), refellipsoidOrbitPlane(), refr_index_airMicrowavesEarth(), reshape(), retrievalAddSinefit(), Rosenkranz_CO2_foreign_continuum(), Rosenkranz_CO2_self_continuum(), Rosenkranz_N2_self_continuum(), Rosenkranz_O2_continuum(), Absorption::LineMixing::RosenkranzDV(), Absorption::LineMixing::RosenkranzG(), Absorption::LineMixing::RosenkranzY(), rte_pos2gridpos(), rte_step_doit_replacement(), rtmethods_jacobian_finalisation(), run_cdisort(), Sample_los(), scat_data_checkedCalc(), scat_data_singleTmatrix(), scat_dataCalc(), ScatSpeciesExtendTemperature(), ScatSpeciesMerge(), Select(), Absorption::Lines::SelfVMR(), sensor_aux_vectors(), sensor_checkedCalc(), sensor_responseAntenna(), sensor_responseBackend(), sensor_responseFillFgrid(), sensor_responseFrequencySwitching(), sensor_responseGenericAMSU(), sensor_responseInit(), sensor_responseMetMM(), sensor_responseMixer(), sensor_responseMixerBackendPrecalcWeights(), sensor_responseMultiMixerBackend(), sensor_responsePolarisation(), sensor_responseStokesRotation(), sensor_responseWMRF(), solve(), sparse_f_gridFromFrequencyGrid(), spectral_irradiance_fieldFromSpectralRadianceField(), spectral_radiance_fieldClearskyPlaneParallel(), spectral_radiance_fieldCopyCloudboxField(), spectral_radiance_fieldExpandCloudboxField(), spectrometer_matrix(), ssd_tinterp_parameters(), Standard_H2O_foreign_continuum(), Standard_H2O_self_continuum(), Standard_N2_self_continuum(), Standard_O2_continuum(), statistical_equilibrium_equation(), StokesVector::StokesVector(), surf_albedoCalc(), surface_props_check(), surface_reflectivityFromGriddedField6(), surface_scalar_reflectivityFromGriddedField4(), surface_specular_R_and_b(), SurfaceBlackbody(), surfaceBlackbody(), surfaceFastem(), surfaceFlatReflectivity(), surfaceFlatRefractiveIndex(), surfaceFlatRvRh(), SurfaceFlatScalarReflectivity(), surfaceFlatScalarReflectivity(), surfaceLambertianSimple(), surfaceTelsem(), surfaceTessem(), telsemStandalone(), tessem_prop_nn(), test01(), test04(), test05(), test06(), test09(), test1(), test47(), test7(), test8(), test_and_merge_two_channels(), test_diagonal(), test_integrate_convolved(), test_integrate_zenith(), test_sparse(), test_telsem_interpolate(), test_x_fixedstep(), time_vector(), transform(), Trapz(), TRE05O2AbsModel(), unitl(), Vector::Vector(), VectorAdd(), VectorClip(), VectorCrop(), VectorDivide(), VectorFlip(), VectorInsertGridPoints(), VectorLinSpace(), VectorLogSpace(), VectorMatrixMultiply(), VectorMultiply(), VectorNLinSpace(), VectorSparseMultiply(), VectorSubtract(), VectorZtanToZa1D(), VectorZtanToZaRefr1D(), WindFieldsCalc(), WindFieldsCalcExpand1D(), WMRFSelectChannels(), WriteMolTau(), x2artsAtmAndSurf(), x2artsSensor(), XINT_FUN(), xml_read_from_stream(), xml_write_to_stream(), xsec_continuum_tag(), yApplySensorPol(), ybatchCalc(), ybatchColdAtmHotAtmCycle(), ybatchDoublingMeanFocus(), ybatchMetProfiles(), ybatchMetProfilesClear(), ybatchTroposphericCorrectionNaiveMedianForward(), yCalc(), yCalc_mblock_loop_body(), yCalcAppend(), yColdAtmHot(), yDoublingMeanFocus(), yMaskOutsideMedianRange(), yRadar(), ySimpleSpectrometer(), z_at_lat_2d(), z_at_latlon(), z_surfaceConstantAltitude(), za_gridOpt(), ze_cfac(), zeeman_on_the_fly(), and ZFromPSimple().

◆ operator ConstMatrixView()

ConstVectorView::operator ConstMatrixView ( ) const

Conversion to const 1 column matrix.

Definition at line 76 of file matpackI.cc.

◆ operator=() [1/2]

ConstVectorView & ConstVectorView::operator= ( const ConstVectorView )
default

◆ operator=() [2/2]

ConstVectorView & ConstVectorView::operator= ( ConstVectorView &&  )
default

◆ operator[]() [1/2]

ConstVectorView ConstVectorView::operator[] ( const Range r) const

Const index operator for subrange.

We have to also account for the case, that *this is already a subrange of a Vector. This allows correct recursive behavior.

Definition at line 62 of file matpackI.cc.

◆ operator[]() [2/2]

Numeric ConstVectorView::operator[] ( Index  n) const
inline

Plain const index operator.

Definition at line 523 of file matpackI.h.

References ARTS_ASSERT, get(), Range::mextent, and mrange.

◆ size()

◆ sum()

Numeric ConstVectorView::sum ( ) const

Friends And Related Function Documentation

◆ ConstComplexVectorView

friend class ConstComplexVectorView
friend

Definition at line 564 of file matpackI.h.

◆ ConstIterator2D

friend class ConstIterator2D
friend

Definition at line 557 of file matpackI.h.

◆ ConstMatrixView

friend class ConstMatrixView
friend

Definition at line 558 of file matpackI.h.

◆ ConstTensor3View

friend class ConstTensor3View
friend

Definition at line 559 of file matpackI.h.

◆ ConstTensor4View

friend class ConstTensor4View
friend

Definition at line 560 of file matpackI.h.

◆ ConstTensor5View

friend class ConstTensor5View
friend

Definition at line 561 of file matpackI.h.

◆ ConstTensor6View

friend class ConstTensor6View
friend

Definition at line 562 of file matpackI.h.

◆ ConstTensor7View

friend class ConstTensor7View
friend

Definition at line 563 of file matpackI.h.

◆ diagonalize

void diagonalize ( MatrixView  ,
VectorView  ,
VectorView  ,
ConstMatrixView   
)
friend

Matrix Diagonalization.

Return P and W from A in the statement diag(P^-1*A*P)-W == 0. The real function will require some manipulation if the eigenvalues are imaginary.

The real version returns WR and WI as returned by dgeev. The complex version just returns W.

The function makes many copies and is thereby not fast. There are no tests on the condition of the returned matrix, so nan and inf can occur.

Parameters
[out]PThe right eigenvectors.
[out]WRThe real eigenvalues.
[out]WIThe imaginary eigenvalues.
[in]AThe matrix to diagonalize.

Definition at line 241 of file lin_alg.cc.

◆ lubacksub

void lubacksub ( VectorView  ,
ConstMatrixView  ,
ConstVectorView  ,
const ArrayOfIndex  
)
friend

LU backsubstitution.

Solves a set of linear equations Ax=b. It is neccessairy to do a L decomposition using the function ludcp before using this function. The backsubstitution is in-place, i.e. x and b may be the same vector.

Parameters
xOutput: Solution vector of the equation system.
LUInput: LU decomposition of the matrix (output of function ludcp).
bInput: Right-hand-side vector of equation system.
indxInput: Pivoting information (output of function ludcp).

Definition at line 91 of file lin_alg.cc.

◆ MapToEigen [1/2]

ConstMatrixViewMap MapToEigen ( const ConstVectorView )
friend

Definition at line 1677 of file matpackI.cc.

◆ MapToEigen [2/2]

MatrixViewMap MapToEigen ( VectorView )
friend

Definition at line 1708 of file matpackI.cc.

◆ MapToEigenCol [1/2]

ConstMatrixViewMap MapToEigenCol ( const ConstVectorView )
friend

Definition at line 1690 of file matpackI.cc.

◆ MapToEigenCol [2/2]

MatrixViewMap MapToEigenCol ( VectorView )
friend

Definition at line 1719 of file matpackI.cc.

◆ mult [1/2]

void mult ( VectorView  ,
const ConstMatrixView ,
const ConstVectorView  
)
friend

Matrix-Vector Multiplication.

Computes the Matrix-Vector product y = M * x, for a m times n matrix M, a length-m vector y and a length-n vector x.

The product is computed using the dgemv_ routine from the BLAS library if the matrix is contiguous in memory. If this is not the case, the mult_general method is used to compute the product.

No memory is allocated for the computation and the matrix and vector views may not overlap.

Parameters
[out]yThe length-m VectorView where the result is stored.
[in]MReference to the m-times-n ConstMatrixView holding the matrix M.
[in]xReference to the length-n ConstVectorView holding the vector x.

Definition at line 1123 of file matpackI.cc.

◆ mult [2/2]

void mult ( VectorView  ,
const Sparse ,
ConstVectorView   
)
friend

Sparse matrix - Vector multiplication.

This calculates the product

y = M*x, where M is sparse.

Output comes first!

Dimensions of y, M, and x must match. No memory reallocation takes place, only the data is copied.

Parameters
yOutput: The multiplication result.
MMatrix for multiplication (sparse).
xVector for multiplication.

Definition at line 417 of file matpackII.cc.

◆ mult_general

void mult_general ( VectorView  y,
const ConstMatrixView M,
const ConstVectorView x 
)
friend

Matrix Vector multiplication.

y = M*x. Note that the order is different from MTL, output comes first! Dimensions of y, M, and x must match. No memory reallocation takes place, only the data is copied. Using this function on overlapping Matrix and VectorViews belonging to the same Matrix will lead to unpredictable results.

The implementation here is different from the other multiplication routines. It does not use iterators but a more drastic approach to gain maximum performance.

Definition at line 1181 of file matpackI.cc.

◆ operator*

Numeric operator* ( const ConstVectorView a,
const ConstVectorView b 
)
friend

Scalar product.

The two vectors may be identical.

Definition at line 1092 of file matpackI.cc.

◆ poly_root_solve

int poly_root_solve ( Matrix roots,
Vector coeffs 
)
friend

Definition at line 90 of file poly_roots.cc.

◆ transpose_mult

void transpose_mult ( VectorView  ,
const Sparse ,
ConstVectorView   
)
friend

Sparse matrix - Vector multiplication.

This calculates the product

y = M*x, where M is sparse.

Output comes first!

Dimensions of y, M, and x must match. No memory reallocation takes place, only the data is copied.

Parameters
yOutput: The multiplication result.
MMatrix for multiplication (sparse).
xVector for multiplication.

Definition at line 452 of file matpackII.cc.

◆ VectorView

friend class VectorView
friend

Definition at line 556 of file matpackI.h.

Member Data Documentation

◆ mdata

◆ mrange

Range ConstVectorView::mrange {0, 0}
protected

The documentation for this class was generated from the following files: