diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2007-02-03 20:58:00 +0000 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2007-02-03 20:58:00 +0000 |
commit | 2b82da0e695a422775b0850f5f14e56f80f41cfa (patch) | |
tree | b8c54c45e56c84c5488288b4e531335e8b696bc4 /Carpet/CarpetLib/src/gdata.cc | |
parent | 3046f9acd4a16df5450f45b2e43e1395bed42ad1 (diff) |
CarpetLib: Use AT to index std::vector
Define a macro AT() to index into std::vector. Depending on the macro
NDEBUG, AT() is defined either as at(), providing index checking, or
as operator[], providing no checking.
darcs-hash:20070203205854-dae7b-a1999c88c95ba12b1ee66505f712aefdd67d7e6f.gz
Diffstat (limited to 'Carpet/CarpetLib/src/gdata.cc')
-rw-r--r-- | Carpet/CarpetLib/src/gdata.cc | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/Carpet/CarpetLib/src/gdata.cc b/Carpet/CarpetLib/src/gdata.cc index 207cc2624..7180c2ce9 100644 --- a/Carpet/CarpetLib/src/gdata.cc +++ b/Carpet/CarpetLib/src/gdata.cc @@ -128,15 +128,15 @@ void gdata::copy_from (comm_state& state, if (proc() != src->proc()) { // if this is a destination processor: advance its recv buffer size vector<comm_state::procbufdesc>& procbufs = - state.typebufs.at(c_datatype()).procbufs; + state.typebufs.AT(c_datatype()).procbufs; if (proc() == dist::rank()) { - procbufs.at(src->proc()).recvbufsize += box.size(); - state.typebufs.at(c_datatype()).in_use = true; + procbufs.AT(src->proc()).recvbufsize += box.size(); + state.typebufs.AT(c_datatype()).in_use = true; } // if this is a source processor: increment its send buffer size if (src->proc() == dist::rank()) { - procbufs.at(proc()).sendbufsize += box.size(); - state.typebufs.at(c_datatype()).in_use = true; + procbufs.AT(proc()).sendbufsize += box.size(); + state.typebufs.AT(c_datatype()).in_use = true; } } break; @@ -157,7 +157,7 @@ void gdata::copy_from (comm_state& state, // if this is a destination processor and data has already been received // from the source processor: copy it from the recv buffer if (proc() == dist::rank() and - state.recvbuffers_ready.at(dist::size()*c_datatype() + src->proc())) { + state.recvbuffers_ready.AT(dist::size()*c_datatype() + src->proc())) { copy_from_recvbuffer (state, src, box); } break; @@ -258,7 +258,7 @@ void gdata::copy_from_wait (comm_state& state, ivect items = (box.upper() - box.lower()) / box.stride() + 1; ivect offs = (box.lower() - ext.lower()) / ext.stride(); const char* recv_buffer = (const char*) b->pointer(); - int& datatypesize = state.typebufs.at(c_datatype()).datatypesize; + int& datatypesize = state.typebufs.AT(c_datatype()).datatypesize; for (int k = 0; k < items[2]; k++) { for (int j = 0; j < items[1]; j++) { @@ -293,9 +293,9 @@ void gdata::copy_into_sendbuffer (comm_state& state, } else { // copy to remote processor assert (src->_has_storage); - int datatypesize = state.typebufs.at(c_datatype()).datatypesize; + int const datatypesize = state.typebufs.AT(c_datatype()).datatypesize; comm_state::procbufdesc& procbuf = - state.typebufs.at(c_datatype()).procbufs.at(proc()); + state.typebufs.AT(c_datatype()).procbufs.AT(proc()); assert (procbuf.sendbuf - procbuf.sendbufbase <= ((int)procbuf.sendbufsize - box.size()) * datatypesize); int const fillstate = procbuf.sendbuf + (int)box.size()*datatypesize - @@ -324,7 +324,7 @@ void gdata::copy_into_sendbuffer (comm_state& state, if (fillstate == (int)procbuf.sendbufsize * datatypesize) { wtime_commstate_isend.start(); MPI_Isend (procbuf.sendbufbase, procbuf.sendbufsize, - state.typebufs.at(c_datatype()).mpi_datatype, + state.typebufs.AT(c_datatype()).mpi_datatype, proc(), c_datatype(), dist::comm(), &state.srequests.at(dist::size()*c_datatype() + proc())); wtime_commstate_isend.stop(procbuf.sendbufsize * datatypesize); @@ -339,9 +339,9 @@ void gdata::copy_into_sendbuffer (comm_state& state, void gdata::copy_from_recvbuffer (comm_state& state, const gdata* src, const ibbox& box) { - int& datatypesize = state.typebufs.at(c_datatype()).datatypesize; + int& datatypesize = state.typebufs.AT(c_datatype()).datatypesize; comm_state::procbufdesc& procbuf = - state.typebufs.at(c_datatype()).procbufs.at(src->proc()); + state.typebufs.AT(c_datatype()).procbufs.AT(src->proc()); assert (procbuf.recvbuf - procbuf.recvbufbase <= ((int)procbuf.recvbufsize-box.size()) * datatypesize); @@ -385,12 +385,12 @@ void gdata assert (all((box.lower()-extent().lower())%box.stride() == 0)); assert (srcs.size() == times.size() and srcs.size()>0); for (int t=0; t<(int)srcs.size(); ++t) { - assert (srcs.at(t)->has_storage()); - assert (all(box.lower()>=srcs.at(t)->extent().lower())); - assert (all(box.upper()<=srcs.at(t)->extent().upper())); + assert (srcs.AT(t)->has_storage()); + assert (all(box.lower()>=srcs.AT(t)->extent().lower())); + assert (all(box.upper()<=srcs.AT(t)->extent().upper())); } assert (not box.empty()); - const gdata* src = srcs.at(0); + const gdata* src = srcs.AT(0); if (dist::rank() != proc() and dist::rank() != src->proc()) return; switch (state.thestate) { @@ -413,15 +413,15 @@ void gdata if (proc() != src->proc()) { // if this is a destination processor: increment its recv buffer size vector<comm_state::procbufdesc>& procbufs = - state.typebufs.at(c_datatype()).procbufs; + state.typebufs.AT(c_datatype()).procbufs; if (proc() == dist::rank()) { - procbufs.at(src->proc()).recvbufsize += box.size(); - state.typebufs.at(c_datatype()).in_use = true; + procbufs.AT(src->proc()).recvbufsize += box.size(); + state.typebufs.AT(c_datatype()).in_use = true; } // if this is a source processor: increment its send buffer size if (src->proc() == dist::rank()) { - procbufs.at(proc()).sendbufsize += box.size(); - state.typebufs.at(c_datatype()).in_use = true; + procbufs.AT(proc()).sendbufsize += box.size(); + state.typebufs.AT(c_datatype()).in_use = true; } } break; @@ -443,7 +443,7 @@ void gdata // from the source processor: copy it from the recv buffer // (the processor-local case is not handled here) if (proc() == dist::rank() and - state.recvbuffers_ready.at(dist::size()*c_datatype() + src->proc())) { + state.recvbuffers_ready.AT(dist::size()*c_datatype() + src->proc())) { copy_from_recvbuffer(state, src, box); } break; @@ -462,7 +462,7 @@ void gdata const int order_space, const int order_time) { - const gdata* src = srcs.at(0); + const gdata* src = srcs.AT(0); if (dist::rank() == proc()) { // interpolate from other processor @@ -514,17 +514,17 @@ void gdata { DECLARE_CCTK_PARAMETERS; - if (proc() == srcs.at(0)->proc()) { + if (proc() == srcs.AT(0)->proc()) { // interpolate on same processor interpolate_from_innerloop (srcs, times, box, time, order_space, order_time); } else { // interpolate to remote processor - const gdata* src = srcs.at(0); + const gdata* src = srcs.AT(0); assert (src->_has_storage); - int& datatypesize = state.typebufs.at(c_datatype()).datatypesize; + int& datatypesize = state.typebufs.AT(c_datatype()).datatypesize; comm_state::procbufdesc& procbuf = - state.typebufs.at(c_datatype()).procbufs.at(proc()); + state.typebufs.AT(c_datatype()).procbufs.AT(proc()); assert (procbuf.sendbuf - procbuf.sendbufbase <= ((int)procbuf.sendbufsize - box.size()) * datatypesize); assert (src->has_storage()); |