#include "iwtree.hh" namespace TSOpt { IWaveTree::IWaveTree(std::vector sv, IWaveInfo const & _ic) : own(false), sa(iwave_max(sv.size()/2,0)), rd(iwave_max(sv.size()/2,0)), ic(_ic) { // cerr<<"iwavetree private constructor\n"; if (sv.size()>1) { for (size_t i=0;imodel).ld_c); } } else { RVLException e; e<<"Error: IWaveTree private constructor\n"; e<<" input vector of size "< rd_a_zero\n"; if ((err=rd_a_zero(&((sa[i]->model).ld_a)))) { RVLException e; e<<"Error: IWaveTree main constructor, IWAVE["<model).ld_c); } // create reference state out of first half of // array, without allocating any new memory, // using private constructor // cerr<<"priv constr\n"; if (order>0) ref = new IWaveTree(sa,ic); else ref=NULL; // cerr<<"exit IWaveTree constructor\n"; } catch (RVLException & e) { e<<"\ncalled from IWaveTree constructor\n"; throw e; } } IWaveTree::~IWaveTree() { if (ref) delete ref; if (own) for (size_t i=0; i