/** \mainpage Local RVL - a simple realization of the RVL data management classes, based on data containers which explose a scalar array
Main components:
- Local data package:
- Local function object package: function objects which may visit LocalDataContainers
- RVL::LocalEvaluation - mixin class with operator() method taking std::vector of arguments
- RVL::LocalFunctionObject - child class of RVL::FunctionObject, RVL::LocalEvaluation
- LocalFunctionObject hierarchy - specializations of the above with 1 - 4 arguments:
- RVL::UnaryLocalFunctionObject
- RVL::BinaryLocalFunctionObject
- RVL::TernaryLocalFunctionObject
- RVL::QuaternaryLocalFunctionObject
- RVL::LocalConstEval - mixin class with operator() method taking std::vector of const arguments
- LocalFunctionObjectConstEval hierarchy - child classes of RVL::FunctionObjectConstEval, RVL::LocalConstEval, 1 - 4 arguments
- RVL::UnaryLocalFunctionObjectConstEval
- RVL::BinaryLocalFunctionObjectConstEval
- RVL::TernaryLocalFunctionObjectConstEval
- RVL::QuaternaryLocalFunctionObjectConstEval
- LocalFunctionObjectScalarRedn hierarchy - child classes of RVL::FunctionObjectScalarRedn, RVL::LocalConstEval, 1 - 4 arguments
- RVL::UnaryLocalFunctionObjectScalarRedn
- RVL::BinaryLocalFunctionObjectScalarRedn
- RVL::TernaryLocalFunctionObjectScalarRedn
- RVL::QuaternaryLocalFunctionObjectScalarRedn
- Rn package:
- RVL::RnArray - simple array child class of RVL::LocalDataContainter. Like GSL's Block, but with constructors, destructor, and access control
- RVL::RnSpace - completely implemented RVL::LocalSpace subclass, whose vectors own RVL::RnArray data structs
- RVL::GenMat - a simple RVL::LinearOp subclass implementing matrix multiplication, with a symmetric specialization (RVL::SymMat). These store the matrix elements in an RVL::RnArray, and act on any vectors of appropriate dimensions whose data structures are RVL::LocalDataContainer~s
- ContentPackage package:
- RVL::ContentPackage - a content package is a pair consisting of (1) a metadata ("data about data") object, and (2) an array of data objects. This construct is naturally recursive: the metadata and/or data objects can themselves be content packages. This is an extremely flexible data structure which accommodates many types of scientific data. For example, an RnArray could have been (but was not) implemented as a content package with int metadata (the dimension) and scalar data. A matrix (or multivector, in Trilinos-speak) is naturally a content package with int metadata and RnArray data. A seismic trace in SEGY format is a content package with trace header metadata and float data. And so on. This concrete class template implements all such data structures and many more.
- RVL::PackageContainer - essentially, a content package server. Subclass of RVL::DataContainer. Implements eval methods via RVL::PackageContainer::get, RVL::PackageContainer::put, and RVL::PackageContainer::reset methods, which provide sequential access to the RVL::ContentPackage array virtualized by this type. Designed for distributed or out-of-core data manipulation, for which only one (or a buffer's worth) of RVL::ContentPackage objects may be held in core at one time.
- RVL::PackageContainerSpace - RVL::StdSpace instance whose buildDataContainer method returns a RVL::PackageContainer
- Functions package:
- Implemented functions collection: local function object templates that carry out various standard array calculations. Some attention paid to efficiency - these may be used in reasonably large scale applications.
- RVL::RVLCopy (float and double template specializations use memcpy)
- RVL::RVLScale
- RVL::RVLMax
- RVL::RVLMin
- RVL::RVLL2innerProd (specialization for std::complex scalar types implements Hermitian form)
- RVL::RVLAddAccumulate
- RVL::RVLAssignConst
- RVL::RVLRandomize (with complex and int specializations)
- RVL::ASCIIReader, RVL::ASCIIWriter
- RVL::BinaryReader, RVL::BinaryWriter
- RVL::RVLBoxMaxStep (max step to boundary of box, used for bound constraints in optimization)
- RVL::ElementwiseMultiply (dot-star)
- RVL::ElementwiseDivision (dot-slash with safeguard)
- RVL::ElementwiseSqrtAbs
- Functions-to-function-objects: wrap C functions to produce function objects which act by evaluating the function on each component of the inputs - one to six arguments
- RVL::ScalarFO1
- RVL::ScalarFO2
- RVL::ScalarFO3
- RVL::ScalarFO4
- RVL::ScalarFO5
- RVL::ScalarFO6
RVL Home Page
*/