From 9815096db22c73cacdbb65512d1b61d633db7fa8 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Mon, 2 Dec 2002 19:21:08 +0000 Subject: "version 0.1.1" svn path=/trunk/; revision=267 --- externals/grill/vasp/source/vecblk.cpp | 49 ++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 externals/grill/vasp/source/vecblk.cpp (limited to 'externals/grill/vasp/source/vecblk.cpp') diff --git a/externals/grill/vasp/source/vecblk.cpp b/externals/grill/vasp/source/vecblk.cpp new file mode 100644 index 00000000..1efc3981 --- /dev/null +++ b/externals/grill/vasp/source/vecblk.cpp @@ -0,0 +1,49 @@ +#include "vecblk.h" +//#include + + +/////////////////////////////////////////////////////////////////////////// +// VecBlock class +/////////////////////////////////////////////////////////////////////////// + +VecBlock::VecBlock(BL cx,I msrc,I mdst,I marg,I blarg): + cplx(cx),asrc(msrc),barg(blarg),aarg(marg*blarg),adst(mdst) +{ + I i,all = asrc+aarg*blarg+adst; + vecs = new VBuffer *[all]; + for(i = 0; i < all; ++i) vecs[i] = NULL; +} + +VecBlock::~VecBlock() +{ + if(vecs) { + I all = asrc+aarg*barg+adst; + for(I i = 0; i < all; ++i) + if(vecs[i]) delete vecs[i]; + delete[] vecs; + } +} + +Vasp *VecBlock::_DstVasp(I n) +{ + Vasp *ret = new Vasp; + ret->Frames(Frames()); + for(I i = 0; i < n; ++i) *ret += Vasp::Ref(*_Dst(i)); + return ret; +} + +Vasp *VecBlock::_SrcVasp(I n) +{ + Vasp *ret = new Vasp; + ret->Frames(Frames()); + for(I i = 0; i < n; ++i) *ret += Vasp::Ref(*_Src(i)); + return ret; +} + +Vasp *VecBlock::_ResVasp(I n) +{ + return _Dst(0)?_DstVasp(n):_SrcVasp(n); +} + + + -- cgit v1.2.1