ARTS 2.5.4 (git: 4c0d3b4d)
|
A constant view of a Vector. More...
#include <matpackI.h>
Public Types | |
using | const_iterator = ConstIterator1D |
Public Member Functions | |
constexpr | ConstVectorView (const ConstVectorView &)=default |
constexpr | ConstVectorView (ConstVectorView &&)=default |
ConstVectorView & | operator= (const ConstVectorView &)=default |
ConstVectorView & | operator= (ConstVectorView &&)=default |
bool | empty () const noexcept |
Returns true if variable size is zero. More... | |
Index | nelem () const noexcept |
Returns the number of elements. More... | |
Index | size () const noexcept |
Shape< 1 > | shape () const |
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... | |
Numeric * | mdata {nullptr} |
Pointer to the plain C array that holds the data. More... | |
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 517 of file matpackI.h.
Definition at line 525 of file matpackI.h.
|
constexprdefault |
|
constexprdefault |
|
virtualdefault |
Destructor.
ConstVectorView::ConstVectorView | ( | const Numeric & | a | ) |
A special constructor, which allows to make a ConstVectorView from a scalar.
Definition at line 85 of file matpackI.cc.
|
protecteddefault |
Explicit constructor.
This one is used by Vector to initialize its own VectorView part.
Definition at line 91 of file matpackI.cc.
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.
*data | The actual data. |
p | Previous range. |
n | New Range. |
Definition at line 98 of file matpackI.cc.
ConstIterator1D ConstVectorView::begin | ( | ) | const |
Return const iterator to first element.
Definition at line 63 of file matpackI.cc.
References mdata, mrange, Range::mstart, and Range::mstride.
Referenced by copy(), max(), mean(), min(), nanmean(), ComplexMatrixView::operator*=(), MatrixView::operator*=(), ComplexVectorView::operator*=(), ComplexMatrixView::operator+=(), MatrixView::operator+=(), ComplexVectorView::operator+=(), ComplexMatrixView::operator-=(), MatrixView::operator-=(), ComplexVectorView::operator-=(), ComplexMatrixView::operator/=(), MatrixView::operator/=(), ComplexVectorView::operator/=(), operator<<(), sum(), and transform().
|
inlinenoexcept |
Returns true if variable size is zero.
Definition at line 530 of file matpackI.h.
References Range::mextent, and mrange.
Referenced by any_negative(), cloudbox_fieldUpdate1D(), cloudbox_fieldUpdateSeq1D(), cloudbox_fieldUpdateSeq3D(), covmatDiagonal(), doit_conv_flagAbsBT(), doit_conv_flagLsq(), DoitCalc(), FieldFromGriddedFieldCheckLatLonHelper(), nlteSetByQuantumIdentifiers(), scat_data_checkedCalc(), ScatElementsToabs_speciesAdd(), yApplySensorPol(), yCalc(), yCalcAppend(), and yRadar().
ConstIterator1D ConstVectorView::end | ( | ) | const |
Return const iterator behind last element.
Definition at line 67 of file matpackI.cc.
References mdata, Range::mextent, mrange, Range::mstart, and Range::mstride.
Referenced by max(), mean(), min(), nanmean(), operator<<(), and transform().
Get element implementation without assertions.
Definition at line 561 of file matpackI.h.
References mdata, mrange, Range::mstart, and Range::mstride.
Referenced by interp(), and operator[]().
|
inlinenoexcept |
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 541 of file matpackI.h.
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(), asymmetry_parameter(), 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(), XsecRecord::CalcXsec(), 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(), 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(), ecs_dataSetMeanAir(), Absorption::LineMixing::ecs_eigenvalue_adaptation_test(), Absorption::LineMixing::ecs_eigenvalue_approximation(), Absorption::LineMixing::ecs_relaxation_matrix(), ELL07WaterDropletAbs(), emission_from_propmat_field(), LineShape::ComputeData::enforce_positive_absorption(), lm_hitran_2017::eqvlines(), ext_abs_pfun_from_tro(), 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(), 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(), HydrotableCalc(), 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(), iyEmissionHybrid(), iyEmissionStandard(), 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(), mean(), 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_clearskyAddHitranXsec(), propmat_clearskyAddLines(), propmat_clearskyAddOnTheFlyLineMixing(), propmat_clearskyAddOnTheFlyLineMixingWithZeeman(), propmat_clearskyAddParticles(), propmat_clearskyAddPredefined(), 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(), Absorption::LineMixing::rosenkranz_approximation(), 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(), select_dims_by_size(), 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(), shape(), solve(), sorted_index_of_ppath_field(), 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(), 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().
ConstVectorView::operator ConstMatrixView | ( | ) | const |
Conversion to const 1 column matrix.
Definition at line 73 of file matpackI.cc.
|
default |
|
default |
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 58 of file matpackI.cc.
Plain const index operator.
Definition at line 554 of file matpackI.h.
References ARTS_ASSERT, get(), Range::mextent, and mrange.
|
inline |
Returns the shape as an array (to allow templates to just look for shape on different matpack objects)
Definition at line 547 of file matpackI.h.
References nelem().
|
inlinenoexcept |
See nelem()
Definition at line 544 of file matpackI.h.
References Range::mextent, and mrange.
Referenced by Absorption::LineMixing::ecs_eigenvalue_adaptation_test(), Absorption::LineMixing::eigenvalue_adaptation_of_relmat(), ConstMatrixView::empty(), XsecRecord::Extract(), Raw::Reduce::focus(), Raw::Reduce::focus_doublescaling(), lm_hitran_2017::hitran_lm_eigenvalue_adaptation_test(), Interpolation::interp(), Interpolation::LagrangeVector(), Raw::Reduce::nanfocus(), Raw::Mask::out_of_bounds(), Matrix::reduce_rank(), Tensor3::reduce_rank(), Tensor4::reduce_rank(), Tensor5::reduce_rank(), Tensor6::reduce_rank(), Tensor7::reduce_rank(), Vector::transform_elementwise(), Matrix::transform_elementwise(), and Vector::Vector().
Numeric ConstVectorView::sum | ( | ) | const |
The sum of all elements of a Vector.
Definition at line 48 of file matpackI.cc.
References begin().
Referenced by antenna1d_matrix(), antenna2d_interp_response(), interp(), LineShape::mass(), nlte_fieldForSingleSpeciesNonOverlappingLines(), spectrometer_matrix(), LineShape::vmrs(), and xsec_continuum_tag().
|
friend |
Definition at line 596 of file matpackI.h.
|
friend |
Definition at line 589 of file matpackI.h.
|
friend |
Definition at line 590 of file matpackI.h.
|
friend |
Definition at line 591 of file matpackI.h.
|
friend |
Definition at line 592 of file matpackI.h.
|
friend |
Definition at line 593 of file matpackI.h.
|
friend |
Definition at line 594 of file matpackI.h.
|
friend |
Definition at line 595 of file matpackI.h.
|
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.
[out] | P | The right eigenvectors. |
[out] | WR | The real eigenvalues. |
[out] | WI | The imaginary eigenvalues. |
[in] | A | The matrix to diagonalize. |
Definition at line 241 of file lin_alg.cc.
|
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.
x | Output: Solution vector of the equation system. |
LU | Input: LU decomposition of the matrix (output of function ludcp). |
b | Input: Right-hand-side vector of equation system. |
indx | Input: Pivoting information (output of function ludcp). |
Definition at line 91 of file lin_alg.cc.
|
friend |
Definition at line 1693 of file matpackI.cc.
|
friend |
Definition at line 1724 of file matpackI.cc.
|
friend |
Definition at line 1706 of file matpackI.cc.
|
friend |
Definition at line 1735 of file matpackI.cc.
|
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.
[out] | y | The length-m VectorView where the result is stored. |
[in] | M | Reference to the m-times-n ConstMatrixView holding the matrix M. |
[in] | x | Reference to the length-n ConstVectorView holding the vector x. |
Definition at line 1131 of file matpackI.cc.
|
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.
y | Output: The multiplication result. |
M | Matrix for multiplication (sparse). |
x | Vector for multiplication. |
Definition at line 417 of file matpackII.cc.
|
friend |
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 1189 of file matpackI.cc.
|
friend |
Definition at line 90 of file poly_roots.cc.
|
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.
y | Output: The multiplication result. |
M | Matrix for multiplication (sparse). |
x | Vector for multiplication. |
Definition at line 452 of file matpackII.cc.
|
friend |
Definition at line 588 of file matpackI.h.
|
protected |
Pointer to the plain C array that holds the data.
Definition at line 644 of file matpackI.h.
Referenced by VectorView::begin(), begin(), VectorView::end(), end(), VectorView::get(), get(), MatrixView::get(), ConstMatrixView::get(), VectorView::get_c_array(), Matrix::get_raw_data(), Vector::operator=(), Matrix::reduce_rank(), Vector::resize(), Vector::transform_elementwise(), Matrix::transform_elementwise(), Vector::Vector(), and Vector::~Vector().
|
protected |
The range of mdata that is actually used.
Definition at line 642 of file matpackI.h.
Referenced by VectorView::begin(), begin(), empty(), VectorView::end(), end(), VectorView::get(), get(), VectorView::get_c_array(), nelem(), VectorView::operator=(), VectorView::operator[](), operator[](), Vector::resize(), and size().