Алгоритм компактного хранения и решения СЛАУ высокого порядка
| Категория реферата: Рефераты по математике
| Теги реферата: баллов, прочитать сообщение
| Добавил(а) на сайт: Аюшиев.
Предыдущая страница реферата | 22 23 24 25 26 27 28 29 30 31 32 | Следующая страница реферата
TSMatrix(void) { Size = 0; Dim = 0; Array = NULL; Links = NULL; }
TSMatrix(Vector<DWORD>*,DWORD,uint);
~TSMatrix(void) { if (Array) delete [] Array; }
Vector<double>& GetRight(void) { return Right; }
DWORD GetSize(void) { return Size; }
uint GetDim(void) { return Dim; }
Vector<double>& GetVector(DWORD i) { return Array[i]; }
Vector<DWORD>* GetLinks(void) { return Links; }
void SetLinks(Vector<DWORD>* l) { Links = l; }
void Add(Matrix<double>&,Vector<DWORD>&);
void Add(DWORD I, DWORD L, DWORD J, DWORD K, double v)
{
DWORD Row = I,
Col = L * Links[I].Size() * Dim + Find(I,J) * Dim + K;
Array[Row][Col] += v;
}
void Add(DWORD I, double v)
{
Right[I] += v;
}
DWORD Find(DWORD,DWORD);
void Restore(Matrix<double>&);
void Set(DWORD,DWORD,double,bool);
void Set(DWORD Index1,DWORD Index2,double value)
{
DWORD I = Index1 / Dim,
L = Index1 % Dim,
J = Index2 / Dim,
K = Index2 % Dim,
Pos = Find(I,J),
Row = I,
Col;
if (Pos == DWORD(-1)) return;
Col = L * Links[I].Size() * Dim + Find(I,J) * Dim + K;
Array[Row][Col] = value;
}
bool Get(DWORD Index1,DWORD Index2,double& value)
{
DWORD I = Index1 / Dim,
L = Index1 % Dim,
J = Index2 / Dim,
K = Index2 % Dim,
Pos = Find(I,J),
Row = I,
Col;
value = 0;
if (Pos == DWORD(-1)) return false;
Col = L * Links[I].Size() * Dim + Find(I,J) * Dim + K;
value = Array[Row][Col];
return true;
Рекомендуем скачать другие рефераты по теме: bestreferat ru, особенности реферата.
Категории:
Предыдущая страница реферата | 22 23 24 25 26 27 28 29 30 31 32 | Следующая страница реферата