Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

Atlfast::Slice_iter< T > Class Template Reference

#include <Slice_iter.h>

Collaboration diagram for Atlfast::Slice_iter< T >:

Collaboration graph
[legend]
List of all members.

Public Methods

 Slice_iter (valarray< T > *vv, slice ss)
Slice_iter end () const
Slice_iter & operator++ ()
Slice_iter operator++ (int)
T & operator[] (size_t i)
T & operator() (size_t i)
T & operator * ()

Private Methods

T & ref (size_t i) const

Private Attributes

valarray< T > * v
slice s
size_t curr

Friends

bool operator== (const Slice_iter< T > &p, const Slice_iter< T > &q)
bool operator!= (const Slice_iter< T > &p, const Slice_iter< T > &q)
bool operator< (const Slice_iter< T > &p, const Slice_iter< T > &q)

template<class T>
class Atlfast::Slice_iter< T >


Constructor & Destructor Documentation

template<class T>
Atlfast::Slice_iter< T >::Slice_iter valarray< T > *    vv,
slice    ss
[inline]
 

Definition at line 23 of file Slice_iter.h.

References Atlfast::Slice_iter< T >::curr, Atlfast::Slice_iter< T >::s, and Atlfast::Slice_iter< T >::v.

00023 : v(vv), s(ss), curr(0){}

Member Function Documentation

template<class T>
T& Atlfast::Slice_iter< T >::ref size_t    i const [inline, private]
 

Definition at line 21 of file Slice_iter.h.

References Atlfast::Slice_iter< T >::s.

Referenced by Atlfast::Slice_iter< T >::operator *(), Atlfast::Slice_iter< T >::operator()(), and Atlfast::Slice_iter< T >::operator[]().

00021 {return (*v)[s.start()+i*s.stride()];}

template<class T>
Slice_iter Atlfast::Slice_iter< T >::end   const [inline]
 

Definition at line 24 of file Slice_iter.h.

References Atlfast::Slice_iter< T >::curr, and Atlfast::Slice_iter< T >::s.

00024                           {
00025       Slice_iter t = *this;
00026       t.curr=s.size();
00027       return t;
00028     }

template<class T>
Slice_iter& Atlfast::Slice_iter< T >::operator++   [inline]
 

Definition at line 29 of file Slice_iter.h.

References Atlfast::Slice_iter< T >::curr.

00029 {curr++; return *this;}

template<class T>
Slice_iter Atlfast::Slice_iter< T >::operator++ int    [inline]
 

Definition at line 30 of file Slice_iter.h.

References Atlfast::Slice_iter< T >::curr.

00030 {Slice_iter t=*this; curr++; return t;}

template<class T>
T& Atlfast::Slice_iter< T >::operator[] size_t    i [inline]
 

Definition at line 32 of file Slice_iter.h.

References Atlfast::Slice_iter< T >::ref().

00032 {return ref(i); }    //C style subscript  

template<class T>
T& Atlfast::Slice_iter< T >::operator() size_t    i [inline]
 

Definition at line 33 of file Slice_iter.h.

References Atlfast::Slice_iter< T >::ref().

00033 {return ref(i); }    //Fortran style subscript  

template<class T>
T& Atlfast::Slice_iter< T >::operator *   [inline]
 

Definition at line 34 of file Slice_iter.h.

References Atlfast::Slice_iter< T >::curr, and Atlfast::Slice_iter< T >::ref().

00034 {return ref(curr); } //current element

Friends And Related Function Documentation

template<class T>
bool operator== const Slice_iter< T > &    p,
const Slice_iter< T > &    q
[friend]
 

Definition at line 37 of file Slice_iter.h.

00037                                                                      {
00038       //      bool operator==<>(const Slice_iter<T>& p, const Slice_iter<T>& q){
00039       return 
00040         p.curr==q.curr && 
00041         p.s.stride()==q.s.stride() && 
00042         p.s.start() == q.s.start();
00043     }

template<class T>
bool operator!= const Slice_iter< T > &    p,
const Slice_iter< T > &    q
[friend]
 

Definition at line 46 of file Slice_iter.h.

00046                                                                      {
00047       //      bool operator!=<>(const Slice_iter<T>& p, const Slice_iter<T>& q){
00048       return  (!p==q);
00049     }

template<class T>
bool operator< const Slice_iter< T > &    p,
const Slice_iter< T > &    q
[friend]
 

Definition at line 52 of file Slice_iter.h.

00052                                                                      {
00053       //      bool operator< <>(const Slice_iter<T>& p, const Slice_iter<T>& q){
00054       return 
00055         p.curr<q.curr && 
00056         p.s.stride() == q.s.stride() && 
00057         p.s.start()  == q.s.start();
00058     }

Member Data Documentation

template<class T>
valarray<T>* Atlfast::Slice_iter< T >::v [private]
 

Definition at line 18 of file Slice_iter.h.

Referenced by Atlfast::Slice_iter< T >::Slice_iter().

template<class T>
slice Atlfast::Slice_iter< T >::s [private]
 

Definition at line 19 of file Slice_iter.h.

Referenced by Atlfast::Slice_iter< T >::end(), Atlfast::Slice_iter< T >::ref(), and Atlfast::Slice_iter< T >::Slice_iter().

template<class T>
size_t Atlfast::Slice_iter< T >::curr [private]
 

Definition at line 20 of file Slice_iter.h.

Referenced by Atlfast::Slice_iter< T >::end(), Atlfast::Slice_iter< T >::operator *(), Atlfast::Slice_iter< T >::operator++(), and Atlfast::Slice_iter< T >::Slice_iter().


The documentation for this class was generated from the following file:
Generated on Wed Jan 15 11:00:34 2003 for AtlfastUtils by doxygen1.3-rc1