#ifndef AMViewH #define AMViewH ////////////////////////////////////////////////////////////////////// // // AMView.h: interface for the AMView class. // ////////////////////////////////////////////////////////////////////// #include #include #include #include #include #include "Vm.h" #include "DistAxis.h" #include "DArray.h" class DArray; //grig class WeightClass { public : long ID; // PS , при отображении в которую будут использоваться веса std::vector body; // opt weights WeightClass() { ID=NULL; body.resize(0); } WeightClass(long AID,std::vector& init_weights) { ID=AID; body.resize(0); for(int i=0;i & AAweights) { // printf("Get SZ id=%lx %d\n",ID,body.size()); AAweights.resize(body.size()); for(int i=0;i& init_weights) {// printf("Set SZ id=%lx %d\n",ID,init_weights.size()); ID=AID; body.resize(0); for(int i=0;i AlignArrays; // Список выравненых массивов std::vector DistRule; // Параметры отображения в виртуальную машину std::vector FillArr; // ??? std::vector BSize; //====// блоки будут кратны этому размеру int Repl; // признак полностью размноженного по AM_Dis массива //grig WeightClass weightEl; // веса для отображения шаблона //\grig AMView(const std::vector& ASizeArray); AMView(const AMView &); // !!! копируется только VM_Dis и DistRule и FillArr ~AMView(); long GetMapDim(long arrDim, int & dir); int DelDA(DArray* RAln_da); // удалить DArray из списка AlignArrays void AddDA(DArray* Aln_da); // добавить DArray в список AlignArrays // Отображение представления абстрактной машины в виртуальную машину void DisAM(VM *AVM_Dis, const std::vector& AAxisArray, const std::vector& ADistrParamArray); // Изменение отображения представления абстрактной машины в виртуальную машину double RDisAM(const std::vector& AAxisArray, const std::vector& ADistrParamArray, long ANewSign); bool IsDistribute(); }; #endif