Ginkgo  Generated from pipelines/1744748943 branch based on develop. Ginkgo version 1.10.0
A numerical linear algebra library targeting many-core architectures
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123456789]
 Cgko::AbsoluteComputableThe AbsoluteComputable is an interface that allows to get the component wise absolute of a LinOp
 Cgko::AllocatorProvides generic allocation and deallocation functionality to be used by an Executor
 Cgko::amd_deviceAmd_device handles the number of executor on Amd devices and have the corresponding recursive_mutex
 Cgko::solver::ApplyWithInitialGuessApplyWithInitialGuess provides a way to give the input guess for apply function
 Cgko::array< ValueType >An array is a container which encapsulates fixed-sized arrays, stored on the Executor tied to the array
 Cgko::array< bool >
 Cgko::array< char >
 Cgko::array< comm_index_type >
 Cgko::array< gko::precision_reduction >
 Cgko::array< gko::stopping_status >
 Cgko::array< global_index_type >
 Cgko::array< GlobalIndexType >
 Cgko::array< index_type >
 Cgko::array< IndexType >
 Cgko::array< int64 >
 Cgko::array< local_index_type >
 Cgko::array< LocalIndexType >
 Cgko::array< real_type >
 Cgko::array< remove_complex< value_type > >
 Cgko::array< size_type >
 Cgko::array< T >
 Cgko::array< unsigned char >
 Cgko::array< value_type >
 Cgko::device_matrix_data< ValueType, IndexType >::arraysStores the internal arrays of a device_matrix_data object
 Cgko::batch_dim< Dimensionality, DimensionType >A type representing the dimensions of a multidimensional batch object
 Cgko::batch_dim< 2 >
 CBatchLinOp
 Cgko::batch::solver::BatchSolverThe BatchSolver is a base class for all batched solvers and provides the common getters and setter for these batched solver classes
 Cgko::preconditioner::block_interleaved_storage_scheme< IndexType >Defines the parameters of the interleaved block storage scheme used by block-Jacobi blocks
 Cgko::preconditioner::block_interleaved_storage_scheme< index_type >
 Cgko::experimental::mpi::CollectiveCommunicatorInterface for a collective communicator
 Cgko::experimental::mpi::communicatorA thin wrapper of MPI_Comm that supports most MPI calls
 Cgko::experimental::mpi::contiguous_typeA move-only wrapper for a contiguous MPI_Datatype
 Cgko::ConvertibleTo< ResultType >ConvertibleTo interface is used to mark that the implementer can be converted to the object of ResultType
 Cgko::ConvertibleTo< Amd< IndexType > >
 Cgko::ConvertibleTo< Bicg< ValueType > >
 Cgko::ConvertibleTo< Bicgstab< ValueType > >
 Cgko::ConvertibleTo< BlockOperator >
 Cgko::ConvertibleTo< CbGmres< ValueType > >
 Cgko::ConvertibleTo< Cg< ValueType > >
 Cgko::ConvertibleTo< Cgs< ValueType > >
 Cgko::ConvertibleTo< Cholesky< ValueType, IndexType > >
 Cgko::ConvertibleTo< Combination< ValueType > >
 Cgko::ConvertibleTo< Composition< ValueType > >
 Cgko::ConvertibleTo< ConcreteBatchLinOp >
 Cgko::ConvertibleTo< ConcreteFactory >
 Cgko::ConvertibleTo< ConcreteLinOp >
 Cgko::ConvertibleTo< ConcreteSolver >
 Cgko::ConvertibleTo< Coo< next_precision< ValueType >, IndexType > >
 Cgko::ConvertibleTo< Coo< ValueType, IndexType > >
 Cgko::ConvertibleTo< Coo< ValueType, int32 > >
 Cgko::ConvertibleTo< Coo< ValueType, int64 > >
 Cgko::ConvertibleTo< Csr< next_precision< ValueType >, IndexType > >
 Cgko::ConvertibleTo< Csr< ValueType, IndexType > >
 Cgko::ConvertibleTo< Csr< ValueType, int32 > >
 Cgko::ConvertibleTo< Csr< ValueType, int64 > >
 Cgko::ConvertibleTo< Dense< next_precision< ValueType > > >
 Cgko::ConvertibleTo< Dense< ValueType > >
 Cgko::ConvertibleTo< Diagonal< next_precision< ValueType > > >
 Cgko::ConvertibleTo< Diagonal< ValueType > >
 Cgko::ConvertibleTo< Direct< ValueType, IndexType > >
 Cgko::ConvertibleTo< Ell< next_precision< ValueType >, IndexType > >
 Cgko::ConvertibleTo< Ell< ValueType, IndexType > >
 Cgko::ConvertibleTo< Ell< ValueType, int32 > >
 Cgko::ConvertibleTo< Ell< ValueType, int64 > >
 Cgko::ConvertibleTo< Factorization< ValueType, IndexType > >
 Cgko::ConvertibleTo< Fbcsr< next_precision< ValueType >, IndexType > >
 Cgko::ConvertibleTo< Fbcsr< ValueType, IndexType > >
 Cgko::ConvertibleTo< Fbcsr< ValueType, int32 > >
 Cgko::ConvertibleTo< Fbcsr< ValueType, int64 > >
 Cgko::ConvertibleTo< Fcg< ValueType > >
 Cgko::ConvertibleTo< Fft >
 Cgko::ConvertibleTo< Fft2 >
 Cgko::ConvertibleTo< Fft3 >
 Cgko::ConvertibleTo< FixedCoarsening< ValueType, IndexType > >
 Cgko::ConvertibleTo< GaussSeidel< ValueType, IndexType > >
 Cgko::ConvertibleTo< Gcr< ValueType > >
 Cgko::ConvertibleTo< Gmres< ValueType > >
 Cgko::ConvertibleTo< Hybrid< next_precision< ValueType >, IndexType > >
 Cgko::ConvertibleTo< Hybrid< ValueType, IndexType > >
 Cgko::ConvertibleTo< Hybrid< ValueType, int32 > >
 Cgko::ConvertibleTo< Hybrid< ValueType, int64 > >
 Cgko::ConvertibleTo< Ic< LSolverType, IndexType > >
 Cgko::ConvertibleTo< Identity< ValueType > >
 Cgko::ConvertibleTo< Idr< ValueType > >
 Cgko::ConvertibleTo< Ilu< LSolverType, USolverType, ReverseApply, IndexType > >
 Cgko::ConvertibleTo< Ir< ValueType > >
 Cgko::ConvertibleTo< Isai< IsaiType, ValueType, IndexType > >
 Cgko::ConvertibleTo< Jacobi< ValueType, IndexType > >
 Cgko::ConvertibleTo< LowerTrs< ValueType, IndexType > >
 Cgko::ConvertibleTo< Lu< ValueType, IndexType > >
 Cgko::ConvertibleTo< matrix::Dense< ValueType > >
 Cgko::ConvertibleTo< Matrix< next_precision< ValueType >, LocalIndexType, GlobalIndexType > >
 Cgko::ConvertibleTo< Matrix< ValueType, LocalIndexType, GlobalIndexType > >
 Cgko::ConvertibleTo< Mc64< ValueType, IndexType > >
 Cgko::ConvertibleTo< Minres< ValueType > >
 Cgko::ConvertibleTo< Multigrid >
 Cgko::ConvertibleTo< MultiVector< next_precision< ValueType > > >
 Cgko::ConvertibleTo< MultiVector< ValueType > >
 Cgko::ConvertibleTo< Partition< LocalIndexType, GlobalIndexType > >
 Cgko::ConvertibleTo< Permutation< IndexType > >
 Cgko::ConvertibleTo< Perturbation< ValueType > >
 Cgko::ConvertibleTo< Pgm< ValueType, IndexType > >
 Cgko::ConvertibleTo< Rcm< IndexType > >
 Cgko::ConvertibleTo< Rcm< ValueType, IndexType > >
 Cgko::ConvertibleTo< RowGatherer< IndexType > >
 Cgko::ConvertibleTo< ScaledPermutation< ValueType, IndexType > >
 Cgko::ConvertibleTo< ScaledReordered< ValueType, IndexType > >
 Cgko::ConvertibleTo< Schwarz< ValueType, LocalIndexType, GlobalIndexType > >
 Cgko::ConvertibleTo< Sellp< next_precision< ValueType >, IndexType > >
 Cgko::ConvertibleTo< Sellp< ValueType, IndexType > >
 Cgko::ConvertibleTo< Sellp< ValueType, int32 > >
 Cgko::ConvertibleTo< Sellp< ValueType, int64 > >
 Cgko::ConvertibleTo< Sor< ValueType, IndexType > >
 Cgko::ConvertibleTo< SparsityCsr< ValueType, IndexType > >
 Cgko::ConvertibleTo< SparsityCsr< ValueType, int32 > >
 Cgko::ConvertibleTo< SparsityCsr< ValueType, int64 > >
 Cgko::ConvertibleTo< UpperTrs< ValueType, IndexType > >
 Cgko::ConvertibleTo< Vector< next_precision< ValueType > > >
 Cgko::ConvertibleTo< Vector< ValueType > >
 Cgko::matrix::CooBuilder< ValueType, IndexType >
 Cgko::cpx_real_type< T >Access the underlying real type of a complex number
 CCriterion
 Cgko::log::criterion_dataStruct representing Criterion related data
 Cgko::stop::CriterionArgsThis struct is used to pass parameters to the EnableDefaultCriterionFactoryCriterionFactory::generate() method
 Cgko::matrix::CsrBuilder< ValueType, IndexType >
 Cgko::cuda_streamAn RAII wrapper for a custom CUDA stream
 Cgko::default_converter< S, R >Used to convert objects of type S to objects of type R using static_cast
 Cgko::deferred_factory_parameter< FactoryType >Represents a factory parameter of factory type that can either initialized by a pre-existing factory or by passing in a factory_parameters object whose .on(exec) will be called to instantiate a factory
 Cgko::deferred_factory_parameter< const gko::LinOpFactory >
 Cgko::deferred_factory_parameter< const typename l_solver_type::Factory >
 Cgko::deferred_factory_parameter< const typename u_solver_type::Factory >
 Cgko::deferred_factory_parameter< excess_solver_factory_type >
 Cgko::deferred_factory_parameter< factorization_type >
 Cgko::deferred_factory_parameter< l_solver_type >
 Cgko::deferred_factory_parameter< local_solver_type >
 Cgko::deferred_factory_parameter< preconditioner_type >
 Cgko::deferred_factory_parameter< solver_type >
 Cgko::deferred_factory_parameter< u_solver_type >
 Cgko::device_matrix_data< ValueType, IndexType >This type is a device-side equivalent to matrix_data
 Cgko::DiagonalLinOpExtractableThe diagonal of a LinOp can be extracted
 Cgko::dim< Dimensionality, DimensionType >A type representing the dimensions of a multidimensional object
 Cgko::dim< 1u, DimensionType >
 Cgko::dim< 2 >
 Cgko::dim< 3 >
 Cgko::dim< dimensionality, dimension_type >
 Cgko::experimental::distributed::DistributedBaseA base class for distributed objects
 Cgko::enable_parameters_type< ConcreteParametersType, Factory >The enable_parameters_type mixin is used to create a base implementation of the factory parameters structure
 Cgko::enable_parameters_type< Parameters, Factory >
 Cgko::enable_parameters_type< parameters_type, Amd< IndexType > >
 Cgko::enable_parameters_type< parameters_type, Cholesky >
 Cgko::enable_parameters_type< parameters_type, Factory >
 Cgko::enable_parameters_type< parameters_type, GaussSeidel >
 Cgko::enable_parameters_type< parameters_type, Lu >
 Cgko::enable_parameters_type< parameters_type, Mc64 >
 Cgko::enable_parameters_type< parameters_type, Rcm< IndexType > >
 Cgko::enable_parameters_type< parameters_type, Sor >
 Cenable_shared_from_this
 Cgko::EnableCreateMethod< ConcreteType >This mixin implements a static create() method on ConcreteType that dynamically allocates the memory, uses the passed-in arguments to construct the object, and returns an std::unique_ptr to such an object
 Cgko::EnableCreateMethod< Combination< ValueType > >
 Cgko::EnableCreateMethod< Composition< ValueType > >
 Cgko::EnableCreateMethod< Perturbation< ValueType > >
 Cgko::detail::EnableDeviceResetControls whether the DeviceReset function should be called thanks to a boolean
 Cgko::experimental::mpi::environmentClass that sets up and finalizes the MPI environment
 Cgko::err< T >
 Cstd::exceptionSTL class
 Cgko::log::executor_dataStruct representing Executor related data
 Cgko::executor_deleter< T >This is a deleter that uses an executor's free method to deallocate the data
 Cgko::executor_deleter< T[]>
 Cfalse_type
 Cgko::matrix::FbcsrBuilder< ValueType, IndexType >
 Cgko::halfA class providing basic support for half precision floating point types
 Cgko::hip_streamAn RAII wrapper for a custom HIP stream
 Chwloc_obj_t
 Chwloc_obj_type_t
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::add >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::bitwise_and >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::bitwise_or >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::bitwise_xor >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::div >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::equal >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::greater >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::greater_or_equal >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::left_shift >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::less >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::less_or_equal >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::logical_and >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::logical_or >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::max_operation >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::min_operation >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::mod >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::mul >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::not_equal >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::right_shift >
 Cgko::detail::implement_binary_operation< Kind, FirstOperand, SecondOperand, ::gko::accessor::detail::sub >
 Cgko::detail::implement_unary_operation< Operand, ::gko::accessor::detail::abs_operation >
 Cgko::detail::implement_unary_operation< Operand, ::gko::accessor::detail::bitwise_not >
 Cgko::detail::implement_unary_operation< Operand, ::gko::accessor::detail::conj_operation >
 Cgko::detail::implement_unary_operation< Operand, ::gko::accessor::detail::imag_operation >
 Cgko::detail::implement_unary_operation< Operand, ::gko::accessor::detail::logical_not >
 Cgko::detail::implement_unary_operation< Operand, ::gko::accessor::detail::one_operation >
 Cgko::detail::implement_unary_operation< Operand, ::gko::accessor::detail::real_operation >
 Cgko::detail::implement_unary_operation< Operand, ::gko::accessor::detail::squared_norm_operation >
 Cgko::detail::implement_unary_operation< Operand, ::gko::accessor::detail::unary_minus >
 Cgko::detail::implement_unary_operation< Operand, ::gko::accessor::detail::unary_plus >
 Cgko::detail::implement_unary_operation< Operand, ::gko::accessor::detail::zero_operation >
 Cgko::experimental::distributed::index_map< LocalIndexType, GlobalIndexType >This class defines mappings between global and local indices
 Cgko::experimental::distributed::index_map< local_index_type, global_index_type >
 Cgko::index_set< IndexType >An index set class represents an ordered set of intervals
 Cgko::log::iteration_complete_dataStruct representing iteration complete related data
 Cgko::solver::IterativeBaseA LinOp implementing this interface stores a stopping criterion factory
 Cgko::log::linop_dataStruct representing LinOp related data
 Cgko::log::linop_factory_dataStruct representing LinOp factory related data
 Cgko::log::LoggableLoggable class is an interface which should be implemented by classes wanting to support logging
 Cgko::log::Record::logged_dataStruct storing the actually logged data
 Cgko::log::Logger
 Cgko::machine_topologyThe machine topology class represents the hierarchical topology of a machine, including NUMA nodes, cores and PCI Devices
 Cgko::matrix_assembly_data< ValueType, IndexType >This structure is used as an intermediate type to assemble a sparse matrix
 Cgko::matrix_data< ValueType, IndexType >This structure is used as an intermediate data type to store a sparse matrix
 Cgko::matrix_data_entry< ValueType, IndexType >Type used to store nonzeros
 Cgko::accessor::mmul_operation< Kind, FirstAccessor, SecondAccessor >
 Cgko::multigrid::MultigridLevelThis class represents two levels in a multigrid hierarchy
 Cgko::log::ProfilerHook::nested_summary_entry
 Cgko::log::ProfilerHook::NestedSummaryWriterReceives the results from ProfilerHook::create_nested_summary()
 Cgko::null_deleter< T >This is a deleter that does not delete the object
 Cgko::null_deleter< T[]>
 Cgko::nvidia_deviceNvidia_device handles the number of executor on Nvidia devices and have the corresponding recursive_mutex
 Cgko::OperationOperations can be used to define functionalities whose implementations differ among devices
 Cgko::log::operation_dataStruct representing Operator related data
 Cgko::Permutable< IndexType >Linear operators which support permutation should implement the Permutable interface
 Cgko::Permutable< int32 >
 Cgko::Permutable< int64 >
 Cgko::matrix::Csr< ValueType, IndexType >::permuting_reuse_infoA struct describing a transformation of the matrix that reorders the values of the matrix into the transformed matrix
 Cgko::config::pnodePnode describes a tree of properties
 Cgko::log::polymorphic_object_dataStruct representing PolymorphicObject related data
 CPolymorphicBase
 Cgko::precision_reductionThis class is used to encode storage precisions of low precision algorithms
 Cgko::PreconditionableA LinOp implementing this interface can be preconditioned
 Cgko::log::profiling_scope_guardScope guard that annotates its scope with the provided profiler hooks
 Cgko::ptr_param< T >This class is used for function parameters in the place of raw pointers
 Cgko::range< Accessor >A range is a multidimensional view of the memory
 Cgko::syn::range< Start, End, Step >Range records start, end, step in template
 Cgko::ReadableFromMatrixData< ValueType, IndexType >A LinOp implementing this interface can read its data from a matrix_data structure
 Cgko::ReadableFromMatrixData< ValueType, int32 >
 Cgko::ReadableFromMatrixData< ValueType, int64 >
 Cgko::config::registryThis class stores additional context for creating Ginkgo objects from configuration files
 CReorderingBase
 Cgko::reorder::ReorderingBaseArgsThis struct is used to pass parameters to the EnableDefaultReorderingBaseFactory::generate() method
 Cgko::experimental::mpi::requestLight, move-only wrapper around the MPI_Request handle
 Cgko::accessor::row_major< ValueType, Dimensionality >A row_major accessor is a bridge between a range and the row-major memory layout
 Cgko::ScaledIdentityAddableAdds the operation M <- a I + b M for matrix M, identity operator I and scalars a and b, where M is the calling object
 Cgko::scoped_device_id_guardThis move-only class uses RAII to set the device id within a scoped block, if necessary
 Cgko::segmented_array< T >A minimal interface for a segmented array
 Cgko::segmented_array< global_index_type >
 Cgko::segmented_array< GlobalIndexType >
 Cgko::segmented_array< local_index_type >
 Cgko::segmented_array< LocalIndexType >
 Cgko::segmented_array< size_type >
 Cgko::solver::detail::SolverBaseLinOpA LinOp implementing this interface stores a system matrix
 Cgko::spanA span is a lightweight structure used to create sub-ranges from other ranges
 Cgko::experimental::mpi::statusThe status struct is a light wrapper around the MPI_Status struct
 Cgko::stopping_statusThis class is used to keep track of the stopping status of one vector
 Cgko::matrix::Csr< ValueType, IndexType >::strategy_typeStrategy_type is to decide how to set the csr algorithm
 Cgko::matrix::Hybrid< ValueType, IndexType >::strategy_typeStrategy_type is to decide how to set the hybrid config
 Cgko::log::ProfilerHook::summary_entry
 Cgko::log::ProfilerHook::SummaryWriterReceives the results from ProfilerHook::create_summary()
 Cgko::time_pointAn opaque wrapper for a time point generated by a timer
 Cgko::TimerRepresents a generic timer that can be used to record time points and measure time differences on host or device streams
 Cgko::TransposableLinear operators which support transposition should implement the Transposable interface
 Cgko::accessor::transpose_operation< Accessor >
 Ctrue_type
 Cgko::truncated< typename, size_t, size_t >
 Ctype
 Cgko::config::type_descriptorThis class describes the value and index types to be used when building a Ginkgo type from a configuration file
 Cgko::experimental::mpi::type_impl< T >A struct that is used to determine the MPI_Datatype of a specified type
 Cgko::experimental::mpi::type_impl< char >
 Cgko::experimental::mpi::type_impl< double >
 Cgko::experimental::mpi::type_impl< float >
 Cgko::experimental::mpi::type_impl< int >
 Cgko::experimental::mpi::type_impl< long >
 Cgko::experimental::mpi::type_impl< long double >
 Cgko::experimental::mpi::type_impl< long long >
 Cgko::experimental::mpi::type_impl< unsigned >
 Cgko::experimental::mpi::type_impl< unsigned char >
 Cgko::experimental::mpi::type_impl< unsigned long >
 Cgko::experimental::mpi::type_impl< unsigned long long >
 Cgko::experimental::mpi::type_impl< unsigned short >
 Cgko::syn::type_list< Types >Type_list records several types in template
 Cgko::stop::Criterion::UpdaterServes for convenient argument passing to the Criterion's check function
 Cgko::UseComposition< ValueType >The UseComposition class can be used to store the composition information in LinOp
 Cgko::syn::value_list< T, Values >Value_list records several values with the same type in template
 Cgko::versionThis structure is used to represent versions of various Ginkgo modules
 Cgko::version_infoGinkgo uses version numbers to label new features and to communicate backward compatibility guarantees:
 Cgko::experimental::mpi::window< ValueType >This class wraps the MPI_Window class with RAII functionality
 Cgko::solver::workspace_traits< Solver >Traits class providing information on the type and location of workspace vectors inside a solver
 Cgko::solver::workspace_traits< Bicg< ValueType > >
 Cgko::solver::workspace_traits< Bicgstab< ValueType > >
 Cgko::solver::workspace_traits< Cg< ValueType > >
 Cgko::solver::workspace_traits< Cgs< ValueType > >
 Cgko::solver::workspace_traits< Fcg< ValueType > >
 Cgko::solver::workspace_traits< Gcr< ValueType > >
 Cgko::solver::workspace_traits< gko::experimental::solver::Direct< ValueType, IndexType > >
 Cgko::solver::workspace_traits< Gmres< ValueType > >
 Cgko::solver::workspace_traits< Idr< ValueType > >
 Cgko::solver::workspace_traits< Ir< ValueType > >
 Cgko::solver::workspace_traits< LowerTrs< ValueType, IndexType > >
 Cgko::solver::workspace_traits< Minres< ValueType > >
 Cgko::solver::workspace_traits< Multigrid >
 Cgko::solver::workspace_traits< UpperTrs< ValueType, IndexType > >
 Cgko::WritableToMatrixData< ValueType, IndexType >A LinOp implementing this interface can write its data to a matrix_data structure
 Cgko::WritableToMatrixData< default_precision, IndexType >
 Cgko::WritableToMatrixData< std::complex< double >, int32 >
 Cgko::WritableToMatrixData< std::complex< double >, int64 >
 Cgko::WritableToMatrixData< std::complex< float >, int32 >
 Cgko::WritableToMatrixData< std::complex< float >, int64 >
 Cgko::WritableToMatrixData< ValueType, int32 >
 Cgko::WritableToMatrixData< ValueType, int64 >