115 lines
2.6 KiB
C
115 lines
2.6 KiB
C
|
|
#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
|