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

100 lines
3.4 KiB
C
Raw Normal View History

2023-09-14 19:43:13 +03:00
#ifndef DArrayH
#define DArrayH
//////////////////////////////////////////////////////////////////////
//
// DArray.h: interface for the DArray class.
//
//////////////////////////////////////////////////////////////////////
#include <vector>
#include <fstream>
#include "Space.h"
#include "AMView.h"
#include "AlignAxis.h"
#include "Block.h"
#include "CommCost.h"
//#include "ModelStructs.h"
class AMView;
class DArray : public Space {
void PrepareAlign(long& TempRank, const std::vector<long>& AAxisArray,
const std::vector<long>& ACoeffArray, const std::vector<long>& AConstArray,
std::vector<AlignAxis>& IniRule);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>. 0 <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
long CheckIndex(const std::vector<long>& InitIndexArray,
std::vector<long>& LastIndexArray,
const std::vector<long>& StepArray);
public:
std::vector<long> LowShdWidthArray;
std::vector<long> HiShdWidthArray;
long TypeSize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AMView *AM_Dis; // AMView <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DArray
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> AM_Dis - ?
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD> Pattern <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
std::vector<AlignAxis> AlignRule;
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>
DArray();
DArray(const std::vector<long>& ASizeArray, const std::vector<long>& ALowShdWidthArray,
const std::vector<long>& AHiShdWidthArray, int ATypeSize);
DArray(const DArray &);
~DArray();
DArray & operator= (const DArray &x);
void AlnDA(AMView *APattern, const std::vector<long>& AAxisArray,
const std::vector<long>& ACoeffArray, const std::vector<long>& AConstArray);
void AlnDA(DArray* APattern, const std::vector<long>& AAxisArray,
const std::vector<long>& ACoeffArray, const std::vector<long>& AConstArray);
double RAlnDA(AMView *APattern, const std::vector<long>& AAxisArray,
const std::vector<long>& ACoeffArray, const std::vector<long>& AConstArray,
long ANewSign);
double RAlnDA(DArray* APattern, const std::vector<long>& AAxisArray,
const std::vector<long>& ACoeffArray, const std::vector<long>& AConstArray,
long ANewSign);
friend double ArrayCopy(
DArray* AFromArray,
const std::vector<long>& AFromInitIndexArray,
const std::vector<long>& AFromLastIndexArray,
const std::vector<long>& AFromStepArray,
DArray* AToArray,
const std::vector<long>& AToInitIndexArray,
const std::vector<long>& AToLastIndexArray,
const std::vector<long>& AToStepArray);
friend double ArrayCopy(DArray* AFromArray,
const std::vector<long>& AFromInitIndexArray,
const std::vector<long>& AFromLastIndexArray,
const std::vector<long>& AFromStepArray,
long ACopyRegim);
// ArrCpy ? - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
long GetMapDim(long arrDim, int &dir); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> VM <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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> - 0).
// <20> dir <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD> -1 <20> <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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool IsAlign();
double RDisDA(const std::vector<long>& AAxisArray, const std::vector<long>& ADistrParamArray,
long ANewSign);
#ifdef P_DEBUG
friend std::ostream& operator << (std::ostream& os, const DArray& s);
#endif
};
#endif