Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

dataview.h File Reference

The header file for dataviews (the abstract interface to a datablock). More...

#include <list>
#include <vector>
#include <string>
#include <iostream>
#include <iomanip>
#include <sstream>
#include <stdarg.h>
#include "datablock.h"
#include "flexibletable.h"

Include dependency graph for dataview.h:

This graph shows which files directly or indirectly include this file:


Classes

class  dataview_interface< T >
 The abstract base class for all data views. PARTIAL DOCUMENTATION! More...
class  vectorview< T >
 A one-dimensional view of a data block, suitable for a BLAS-compatible vector. NO DOC YET! More...
class  matrixview< T >
 A two-dimensional view of a data block, suitable for a BLAS-compatible matrix. NO DOC YET! More...

Detailed Description

The header file for dataviews (the abstract interface to a datablock).

This header file defines the dataview_interface<T>, vectorview<T>, and matrixview<T>. It also contains a general dataview<T> type (multidimensional), but this is under construction and commented out. Finally, it contains all the method definitions for templated class member functions.

Some conventions: A datablock is just a chunk of memory, set up to hold a type T. Views provide an interface to that chunk of memory in two ways. First, they determine the tensor product structure on the chunk (so that the same 100-element chunk can look like either a 100-vector or a 10x10-matrix... or, for that matter, a 2D matrix that is (5x2)x(5x2). Second, they provide clipping; the "virtual size" of the data that the view provides may be smaller (but not larger) than the physical size of the datablock. Thus, a view can extract a submatrix of the previously mentioned M(10,10), e.g. M(2..5,2..5). We can also extract a view that has less dimensions than the original, e.g. M(4,0..9).

Terminology: an "extent" is a physical dimension; the product of all the extents of a view must be equal to the size of the datablock. A "range", on the other hand, is a logical or virtual dimension; the only restriction on a range is that 0<range[i]&lt=extent[i].

NOTE: This file still needs to be documented!


Generated on Wed Jun 14 22:25:27 2006 for linalg by  doxygen 1.4.4