100 lines
3.4 KiB
C
100 lines
3.4 KiB
C
|
|
#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
|