-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNode.cuh
More file actions
87 lines (63 loc) · 1.83 KB
/
Copy pathNode.cuh
File metadata and controls
87 lines (63 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <map>
#include <vector>
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <ctime>
#pragma once
class Node
{
private:
void setStartEndVertexes();
int Node::getArrayLength(int *row);
int Node::getArrayMinValue(int restrictVal, int row);
//std::vector<int> rows;
//std::vector<int> cols;
//std::vector<int> localCycle;
int *translateX;
int *translateY;
int *optimalX;
int *optimalY;
public:
Node(int size, int s, int s0);
int baseSize;
int points;
int size;
int S0;
int S;
int *M;
int *P;
void testMatrixAdduction(int *M);
void copySessionDescription(int *rowD, int *colD);
int getRealElement(int *dataDescription, int ind);
void setP(int size, int *source);
void setInitials(int size);
void printMatrix();
void subMinRowsAndCorrect();
void subMinColsAndCorrect();
void getPathForRemove(int &i, int &j);
void setInfinityFor(int row, int col);
void setMatrix(int *M);
//void setMatrix(matrix<int> M);
void setMatrixWithExclude(int *source, int excludeRow, int excludeCol);
void setPreviouseNode(Node *prevNode);
void invokeAdduction();
void copyCandidatesP(int *P);
void setInitialMatrix(int *sourceMatrix);
void setMatrixWithRemoveExclude( int *source, int excludeRow, int excludeCol);
void copyRowColDescriptors(std::vector<int> rows, std::vector<int> cols);
int getHead(int tail);
int getTail(int head);
void handlePodcycles(int &a, int &b);
void handleStraightforwardMatrix();
Node* leftBranching(int row, int col);
Node* rightBranching(int row, int col);
bool isRowRemove(int *row);
static const int InfityMaxValue = 1000000;
static const int InfityMinValue = -1000000;
int getRealSize();
void setRealSize();
void printArray(int size, int *arr);
int* subMinRowsAndCorrect(int s, const int *row, const int size);
int * cudaCleanCopy(int *source);
~Node();
};