![]() |
Implementation of a compressed MxN matrix. More...
#include <algorithm>
#include <utility>
#include <vector>
#include <blaze/math/Aliases.h>
#include <blaze/math/constraints/RequiresEvaluation.h>
#include <blaze/math/constraints/Symmetric.h>
#include <blaze/math/Exception.h>
#include <blaze/math/expressions/SparseMatrix.h>
#include <blaze/math/Forward.h>
#include <blaze/math/InitializerList.h>
#include <blaze/math/RelaxationFlag.h>
#include <blaze/math/shims/IsDefault.h>
#include <blaze/math/shims/Serial.h>
#include <blaze/math/sparse/MatrixAccessProxy.h>
#include <blaze/math/sparse/ValueIndexPair.h>
#include <blaze/math/traits/AddTrait.h>
#include <blaze/math/traits/BandTrait.h>
#include <blaze/math/traits/ColumnsTrait.h>
#include <blaze/math/traits/ColumnTrait.h>
#include <blaze/math/traits/DivTrait.h>
#include <blaze/math/traits/MultTrait.h>
#include <blaze/math/traits/RowsTrait.h>
#include <blaze/math/traits/RowTrait.h>
#include <blaze/math/traits/SchurTrait.h>
#include <blaze/math/traits/SubmatrixTrait.h>
#include <blaze/math/traits/SubTrait.h>
#include <blaze/math/traits/UnaryMapTrait.h>
#include <blaze/math/typetraits/HighType.h>
#include <blaze/math/typetraits/IsLower.h>
#include <blaze/math/typetraits/IsResizable.h>
#include <blaze/math/typetraits/IsShrinkable.h>
#include <blaze/math/typetraits/IsSMPAssignable.h>
#include <blaze/math/typetraits/IsStrictlyLower.h>
#include <blaze/math/typetraits/IsStrictlyUpper.h>
#include <blaze/math/typetraits/IsUpper.h>
#include <blaze/math/typetraits/LowType.h>
#include <blaze/system/StorageOrder.h>
#include <blaze/system/Thresholds.h>
#include <blaze/system/TransposeFlag.h>
#include <blaze/util/algorithms/Max.h>
#include <blaze/util/algorithms/Min.h>
#include <blaze/util/algorithms/Transfer.h>
#include <blaze/util/Assert.h>
#include <blaze/util/constraints/Const.h>
#include <blaze/util/constraints/Pointer.h>
#include <blaze/util/constraints/Reference.h>
#include <blaze/util/constraints/SameSize.h>
#include <blaze/util/constraints/Volatile.h>
#include <blaze/util/EnableIf.h>
#include <blaze/util/Memory.h>
#include <blaze/util/mpl/And.h>
#include <blaze/util/mpl/If.h>
#include <blaze/util/mpl/Not.h>
#include <blaze/util/Types.h>
#include <blaze/util/typetraits/IsFloatingPoint.h>
#include <blaze/util/typetraits/IsNumeric.h>
Go to the source code of this file.
Classes | |
class | blaze::CompressedMatrix< Type, SO > |
Efficient implementation of a ![]() ![]() | |
struct | blaze::CompressedMatrix< Type, SO >::Rebind< NewType > |
Rebind mechanism to obtain a CompressedMatrix with different data/element type. More... | |
struct | blaze::CompressedMatrix< Type, SO >::Resize< NewM, NewN > |
Resize mechanism to obtain a CompressedMatrix with different fixed dimensions. More... | |
struct | blaze::Rebind< NewType > |
Rebind mechanism to obtain a CompressedMatrix with different data/element type. More... | |
struct | blaze::Resize< NewM, NewN > |
Resize mechanism to obtain a CompressedMatrix with different fixed dimensions. More... | |
Namespaces | |
blaze | |
Namespace of the Blaze C++ math library. | |
Typedefs | |
using | blaze::This = CompressedMatrix< Type, true > |
Type of this CompressedMatrix instance. | |
using | blaze::BaseType = SparseMatrix< This, true > |
Base type of this CompressedMatrix instance. | |
using | blaze::ResultType = This |
Result type for expression template evaluations. | |
using | blaze::OppositeType = CompressedMatrix< Type, false > |
Result type with opposite storage order for expression template evaluations. | |
using | blaze::TransposeType = CompressedMatrix< Type, false > |
Transpose type for expression template evaluations. | |
using | blaze::ElementType = Type |
Type of the compressed matrix elements. | |
using | blaze::ReturnType = const Type & |
Return type for expression template evaluations. | |
using | blaze::CompositeType = const This & |
Data type for composite expression templates. | |
using | blaze::Reference = MatrixAccessProxy< This > |
Reference to a non-constant matrix value. | |
using | blaze::ConstReference = const Type & |
Reference to a constant matrix value. | |
using | blaze::Iterator = Element * |
Iterator over non-constant elements. | |
using | blaze::ConstIterator = const Element * |
Iterator over constant elements. | |
Enumerations | |
enum | : bool { smpAssignable = !IsSMPAssignable<Type>::value } |
Compilation flag for SMP assignments. More... | |
Functions | |
Constructors | |
blaze::CompressedMatrix () | |
blaze::CompressedMatrix (size_t m, size_t n) | |
blaze::CompressedMatrix (size_t m, size_t n, size_t nonzeros) | |
blaze::CompressedMatrix (size_t m, size_t n, const std::vector< size_t > &nonzeros) | |
blaze::CompressedMatrix (initializer_list< initializer_list< Type > > list) | |
blaze::CompressedMatrix (const CompressedMatrix &sm) | |
blaze::CompressedMatrix (CompressedMatrix &&sm) noexcept | |
template<typename MT , bool SO> | |
blaze::CompressedMatrix (const DenseMatrix< MT, SO > &dm) | |
template<typename MT , bool SO> | |
blaze::CompressedMatrix (const SparseMatrix< MT, SO > &sm) | |
blaze::CompressedMatrix (size_t m, size_t n, Uninitialized) | |
Destructor | |
blaze::~CompressedMatrix () | |
Data access functions | |
Reference | blaze::operator() (size_t i, size_t j) noexcept |
Reference | blaze::at (size_t i, size_t j) |
Iterator | blaze::begin (size_t j) noexcept |
ConstIterator | blaze::cbegin (size_t j) const noexcept |
Iterator | blaze::end (size_t j) noexcept |
ConstIterator | blaze::cend (size_t j) const noexcept |
Assignment operators | |
CompressedMatrix & | blaze::operator= (initializer_list< initializer_list< Type > > list) |
CompressedMatrix & | blaze::operator= (const CompressedMatrix &rhs) |
CompressedMatrix & | blaze::operator= (CompressedMatrix &&rhs) noexcept |
template<typename MT , bool SO> | |
CompressedMatrix & | blaze::operator= (const DenseMatrix< MT, SO > &rhs) |
template<typename MT , bool SO> | |
CompressedMatrix & | blaze::operator= (const SparseMatrix< MT, SO > &rhs) |
template<typename MT , bool SO> | |
CompressedMatrix & | blaze::operator+= (const Matrix< MT, SO > &rhs) |
template<typename MT , bool SO> | |
CompressedMatrix & | blaze::operator-= (const Matrix< MT, SO > &rhs) |
template<typename MT , bool SO> | |
CompressedMatrix & | blaze::operator%= (const DenseMatrix< MT, SO > &rhs) |
template<typename MT , bool SO> | |
CompressedMatrix & | blaze::operator%= (const SparseMatrix< MT, SO > &rhs) |
Utility functions | |
size_t | blaze::rows () const noexcept |
size_t | blaze::columns () const noexcept |
size_t | blaze::capacity () const noexcept |
size_t | blaze::capacity (size_t j) const noexcept |
size_t | blaze::nonZeros () const |
size_t | blaze::nonZeros (size_t j) const |
void | blaze::reset () |
void | blaze::reset (size_t j) |
void | blaze::clear () |
void | blaze::resize (size_t m, size_t n, bool preserve=true) |
void | blaze::reserve (size_t nonzeros) |
void | blaze::reserve (size_t j, size_t nonzeros) |
void | blaze::trim () |
void | blaze::trim (size_t j) |
void | blaze::shrinkToFit () |
void | blaze::swap (CompressedMatrix &sm) noexcept |
size_t | blaze::extendCapacity () const noexcept |
void | blaze::reserveElements (size_t nonzeros) |
Iterator | blaze::castDown (IteratorBase it) const noexcept |
IteratorBase | blaze::castUp (Iterator it) const noexcept |
Insertion functions | |
Iterator | blaze::set (size_t i, size_t j, const Type &value) |
Iterator | blaze::insert (size_t i, size_t j, const Type &value) |
void | blaze::append (size_t i, size_t j, const Type &value, bool check=false) |
void | blaze::finalize (size_t j) |
Iterator | blaze::insert (Iterator pos, size_t i, size_t j, const Type &value) |
Erase functions | |
void | blaze::erase (size_t i, size_t j) |
Iterator | blaze::erase (size_t j, Iterator pos) |
Iterator | blaze::erase (size_t j, Iterator first, Iterator last) |
template<typename Pred > | |
void | blaze::erase (Pred predicate) |
template<typename Pred > | |
void | blaze::erase (size_t j, Iterator first, Iterator last, Pred predicate) |
Lookup functions | |
Iterator | blaze::find (size_t i, size_t j) |
Iterator | blaze::lowerBound (size_t i, size_t j) |
Iterator | blaze::upperBound (size_t i, size_t j) |
Numeric functions | |
CompressedMatrix & | blaze::transpose () |
CompressedMatrix & | blaze::ctranspose () |
template<typename Other > | |
CompressedMatrix & | blaze::scale (const Other &scalar) |
Expression template evaluation functions | |
template<typename Other > | |
bool | blaze::canAlias (const Other *alias) const noexcept |
template<typename Other > | |
bool | blaze::isAliased (const Other *alias) const noexcept |
bool | blaze::canSMPAssign () const noexcept |
template<typename MT , bool SO> | |
void | blaze::assign (const DenseMatrix< MT, SO > &rhs) |
template<typename MT > | |
void | blaze::assign (const SparseMatrix< MT, true > &rhs) |
template<typename MT > | |
void | blaze::assign (const SparseMatrix< MT, false > &rhs) |
template<typename MT , bool SO> | |
void | blaze::addAssign (const DenseMatrix< MT, SO > &rhs) |
template<typename MT , bool SO> | |
void | blaze::addAssign (const SparseMatrix< MT, SO > &rhs) |
template<typename MT , bool SO> | |
void | blaze::subAssign (const DenseMatrix< MT, SO > &rhs) |
template<typename MT , bool SO> | |
void | blaze::subAssign (const SparseMatrix< MT, SO > &rhs) |
template<typename MT , bool SO> | |
void | blaze::schurAssign (const DenseMatrix< MT, SO > &rhs) |
CompressedMatrix operators | |
template<typename Type , bool SO> | |
void | reset (CompressedMatrix< Type, SO > &m) |
Resetting the given compressed matrix. More... | |
template<typename Type , bool SO> | |
void | reset (CompressedMatrix< Type, SO > &m, size_t i) |
Reset the specified row/column of the given compressed matrix. More... | |
template<typename Type , bool SO> | |
void | clear (CompressedMatrix< Type, SO > &m) |
Clearing the given compressed matrix. More... | |
template<bool RF, typename Type , bool SO> | |
bool | isDefault (const CompressedMatrix< Type, SO > &m) |
Returns whether the given compressed matrix is in default state. More... | |
template<typename Type , bool SO> | |
bool | isIntact (const CompressedMatrix< Type, SO > &m) |
Returns whether the invariants of the given compressed matrix are intact. More... | |
template<typename Type , bool SO> | |
void | swap (CompressedMatrix< Type, SO > &a, CompressedMatrix< Type, SO > &b) noexcept |
Swapping the contents of two compressed matrices. More... | |
Variables | |
Member variables | |
size_t | blaze::m_ |
The current number of rows of the compressed matrix. | |
size_t | blaze::n_ |
The current number of columns of the compressed matrix. | |
size_t | blaze::capacity_ |
The current capacity of the pointer array. | |
Iterator * | blaze::begin_ |
Pointers to the first non-zero element of each column. | |
Iterator * | blaze::end_ |
Pointers one past the last non-zero element of each column. | |
static const Type | blaze::zero_ |
Neutral element for accesses to zero elements. | |
Implementation of a compressed MxN matrix.
Copyright (C) 2012-2018 Klaus Iglberger - All Rights Reserved
This file is part of the Blaze library. You can redistribute it and/or modify it under the terms of the New (Revised) BSD License. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.