FEI Package Browser (Single Doxygen Collection)  Version of the Day
snl_fei_RaggedTable_specialize.hpp
Go to the documentation of this file.
1 #ifndef _snl_fei_RaggedTable_specialize_hpp_
2 #define _snl_fei_RaggedTable_specialize_hpp_
3 
4 /*--------------------------------------------------------------------*/
5 /* Copyright 2005 Sandia Corporation. */
6 /* Under the terms of Contract DE-AC04-94AL85000, there is a */
7 /* non-exclusive license for use of this work by or on behalf */
8 /* of the U.S. Government. Export of this program may require */
9 /* a license from the United States Government. */
10 /*--------------------------------------------------------------------*/
11 
12 #include <fei_macros.hpp>
13 #include <snl_fei_RaggedTable.hpp>
14 #include <fei_ctg_set.hpp>
15 #include <snl_fei_MapContig.hpp>
16 
17 namespace snl_fei {
18 
20 template<>
21 class RaggedTable<MapContig<fei::ctg_set<int>*>,fei::ctg_set<int> >
22  : public fei::IndexTable {
23 public:
24  RaggedTable(int firstKey, int lastKey);
25 
27 
30  typedef map_type::iterator iterator;
31 
32  virtual ~RaggedTable()
33  {
34  iterator it = begin();
35  iterator it_end = end();
36  for(; it!=it_end; ++it) {
37  poolAllocatorSet_.destroy( (*it).second );
38  poolAllocatorSet_.deallocate( (*it).second, 1 );
39  }
40  }
41 
42  void addDiagonals(int numIndices,
43  const int* indices);
44 
45  void addIndices(int row,
46  int numIndices,
47  const int* indices);
48 
49  void addIndices(int numRows,
50  const int* rows,
51  int numIndices,
52  const int* indices);
53 
54  map_type& getMap() { return( map_ ); }
55 
56  row_type* getRow(int row)
57  {
58  iterator m_end = map_.end();
59  iterator m_iter = map_.find(row);
60  return( m_end == m_iter ? NULL : (*m_iter).second );
61  }
62 
63  iterator begin() { return( map_.begin() ); }
64 
65  iterator end() { return( map_.end() ); }
66 
67  private:
71 };//RaggedTable<MapContig<fei::ctg_set<int>*> >
72 
73 }//namespace snl_fei
74 #endif
75 
snl_fei::RaggedTable::addIndices
void addIndices(int row, int numIndices, const int *indices)
Definition: snl_fei_RaggedTable.hpp:117
snl_fei
Definition: fei_MatrixGraph_Impl2.cpp:46
snl_fei::RaggedTable< MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > >::begin
iterator begin()
Definition: snl_fei_RaggedTable_specialize.hpp:63
snl_fei::RaggedTable< MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > >::~RaggedTable
virtual ~RaggedTable()
Definition: snl_fei_RaggedTable_specialize.hpp:32
fei_macros.hpp
snl_fei::RaggedTable< MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > >::dummy
row_type dummy
Definition: snl_fei_RaggedTable_specialize.hpp:70
snl_fei::RaggedTable
Definition: snl_fei_RaggedTable.hpp:29
fei_Pool_alloc::destroy
void destroy(U *p)
Definition: fei_Pool_alloc.hpp:80
snl_fei::RaggedTable< MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > >::poolAllocatorSet_
fei_Pool_alloc< row_type > poolAllocatorSet_
Definition: snl_fei_RaggedTable_specialize.hpp:69
snl_fei::RaggedTable::RaggedTable
RaggedTable(int firstKey, int lastKey)
Definition: snl_fei_RaggedTable.hpp:90
snl_fei::RaggedTable::begin
iterator begin()
Definition: snl_fei_RaggedTable.hpp:205
snl_fei::RaggedTable< MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > >::map_type
MapContig< fei::ctg_set< int > * > map_type
Definition: snl_fei_RaggedTable_specialize.hpp:28
fei_ctg_set.hpp
snl_fei::RaggedTable::addDiagonals
void addDiagonals(int numIndices, const int *indices)
Definition: snl_fei_RaggedTable.hpp:218
fei_Pool_alloc::deallocate
void deallocate(pointer p, size_type n)
Definition: fei_Pool_alloc.hpp:114
snl_fei_MapContig.hpp
snl_fei::RaggedTable< MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > >::getMap
map_type & getMap()
Definition: snl_fei_RaggedTable_specialize.hpp:54
snl_fei::RaggedTable< MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > >::getRow
row_type * getRow(int row)
Definition: snl_fei_RaggedTable_specialize.hpp:56
snl_fei::RaggedTable::end
iterator end()
Definition: snl_fei_RaggedTable.hpp:212
fei
Definition: fei_ArrayUtils.hpp:16
snl_fei::RaggedTable::map_
MAP_TYPE map_
Definition: snl_fei_RaggedTable.hpp:84
snl_fei::RaggedTable< MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > >::end
iterator end()
Definition: snl_fei_RaggedTable_specialize.hpp:65
fei::ctg_set
Definition: fei_ctg_set.hpp:39
snl_fei::RaggedTable< MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > >::row_type
fei::ctg_set< int > row_type
Definition: snl_fei_RaggedTable_specialize.hpp:29
fei::IndexTable
Definition: fei_IndexTable.hpp:19
snl_fei::RaggedTable< MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > >::iterator
map_type::iterator iterator
Definition: snl_fei_RaggedTable_specialize.hpp:30
snl_fei::MapContig
Definition: snl_fei_MapContig.hpp:19
snl_fei_RaggedTable.hpp
snl_fei::RaggedTable::poolAllocatorSet_
fei_Pool_alloc< SET_TYPE > poolAllocatorSet_
Definition: snl_fei_RaggedTable.hpp:85
snl_fei::RaggedTable< MapContig< fei::ctg_set< int > * >, fei::ctg_set< int > >::map_
map_type map_
Definition: snl_fei_RaggedTable_specialize.hpp:68
fei_Pool_alloc
Definition: fei_Pool_alloc.hpp:34