Files
SAPFOR/Sapfor/_src/Predictor/Lib/AMView.h

115 lines
2.6 KiB
C
Raw Normal View History

2023-09-14 19:43:13 +03:00
#ifndef AMViewH
#define AMViewH
//////////////////////////////////////////////////////////////////////
//
// AMView.h: interface for the AMView class.
//
//////////////////////////////////////////////////////////////////////
#include <stdlib.h>
#include <fstream>
#include <list>
#include <vector>
#include <algorithm>
#include "Vm.h"
#include "DistAxis.h"
#include "DArray.h"
class DArray;
//grig
class WeightClass
{
public :
long ID; // PS , <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
std::vector<double> body; // opt weights
WeightClass()
{
ID=NULL;
body.resize(0);
}
WeightClass(long AID,std::vector<double>& init_weights)
{
ID=AID;
body.resize(0);
for(int i=0;i<init_weights.size();i++)
{
body.push_back(init_weights[i]);
}
}
void GetWeights(std::vector<double> & AAweights)
{
// printf("Get SZ id=%lx %d\n",ID,body.size());
AAweights.resize(body.size());
for(int i=0;i<body.size();i++)
AAweights[i]=body[i];
}
void SetWeights(long AID,std::vector<double>& init_weights)
{// printf("Set SZ id=%lx %d\n",ID,init_weights.size());
ID=AID;
body.resize(0);
for(int i=0;i<init_weights.size();i++)
{
body.push_back(init_weights[i]);
}
}
~WeightClass()
{
body.resize(0);
}
long GetSize()
{
return body.size();
}
};
//\grig
class AMView : public Space {
public:
VM *VM_Dis; // VM <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AMView
std::list<DArray*> AlignArrays; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::vector<DistAxis> DistRule; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::vector<long> FillArr; // ???
std::vector<long> BSize; //====// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int Repl; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> AM_Dis <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//grig
WeightClass weightEl; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//\grig
AMView(const std::vector<long>& ASizeArray);
AMView(const AMView &); // !!! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> VM_Dis <20> DistRule <20> FillArr
~AMView();
long GetMapDim(long arrDim, int & dir);
int DelDA(DArray* RAln_da); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DArray <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AlignArrays
void AddDA(DArray* Aln_da); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DArray <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AlignArrays
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void DisAM(VM *AVM_Dis, const std::vector<long>& AAxisArray, const std::vector<long>& ADistrParamArray);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double RDisAM(const std::vector<long>& AAxisArray, const std::vector<long>& ADistrParamArray,
long ANewSign);
bool IsDistribute();
};
#endif