#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <iomanip>
#include <ctime>
#include <cstdlib>
#include <list>
#include <map>
#include <vector>
Go to the source code of this file.
Defines | |
#define | EXTRA_H_TEMPLATE_FUNCTIONS |
Functions | |
int | ReadRowCompressedFormat (string s_InputFile, unsigned int ***uip3_SparsityPattern, int &rowCount, int &columnCount) |
Read a Row Compressed Format file. | |
bool | isValidOrdering (vector< int > &ordering, int offset=0) |
Test and make sure that this is a valid ordering. | |
void | randomOrdering (vector< int > &ordering) |
string | toUpper (string input) |
Convert all the characters in input to upper case, ' ', '\ t', '\ n' will be converted to '_'. | |
int | RowCompressedFormat_2_SparseSolversFormat_StructureOnly (unsigned int **uip2_HessianSparsityPattern, unsigned int ui_rowCount, unsigned int **ip2_RowIndex, unsigned int **ip2_ColumnIndex) |
Build the index struture from Row Compressed Format to Sparse Solvers Format. | |
void | ConvertDIMACSFormat2MatrixMarketFormat (string fileNameNoExt) |
Covert file with DIMACS format to Matrix Market format. | |
int | ConvertMatrixMarketFormatToRowCompressedFormat (string s_InputFile, unsigned int ***uip3_SparsityPattern, double ***dp3_Value, int &rowCount, int &columnCount) |
Read the sparse matrix from Matrix-Market-format file and convert to compress sparse row format "uip3_SparsityPattern" & "dp3_Value". | |
int | MatrixMultiplication_VxS (unsigned int **uip3_SparsityPattern, double **dp3_Value, int rowCount, int columnCount, double **dp2_seed, int colorCount, double ***dp3_CompressedMatrix) |
Multiply the original sparse matrix (uip3_SparsityPattern,dp3_Value) (in compress sparse row format) with the seed matrix dp2_seed and store the result in "dp3_CompressedMatrix". | |
int | MatrixMultiplication_SxV (unsigned int **uip3_SparsityPattern, double **dp3_Value, int rowCount, int columnCount, double **dp2_seed, int colorCount, double ***dp3_CompressedMatrix) |
Multiply the seed matrix dp2_seed with the original sparse matrix (uip3_SparsityPattern,dp3_Value) (in compress sparse row format) and store the result in "dp3_CompressedMatrix". | |
bool | CompressedRowMatricesREqual (double **dp3_Value, double **dp3_NewValue, int rowCount, bool compare_exact=1, bool print_all=0) |
Compare dp3_Value with dp3_NewValue and see if all the values are equal. | |
int | Times2Plus1point5 (double **dp2_Values, int i_RowCount, int i_ColumnCount) |
just manipulate the value of dp2_Values a little bit. Each non-zero entry in the matrix * 2 + 1.5. | |
int | Times2 (double **dp2_Values, int i_RowCount, int i_ColumnCount) |
just manipulate the value of dp2_Values a little bit. Each non-zero entry in the matrix * 2. | |
int | GenerateValues (unsigned int **uip2_SparsityPattern, int rowCount, double ***dp3_Value) |
Allocate memory and generate random values for dp3_Value. | |
int | GenerateValuesForSymmetricMatrix (unsigned int **uip2_SparsityPattern, int rowCount, double ***dp3_Value) |
Allocate memory and generate random values for dp3_Value of a Symmetric Matrix. | |
template<class T > | |
int | diffArrays (T *array1, T *array2, int rowCount, bool compare_exact=1, bool print_all=0) |
Find the difference between 2 arrays. Return 0 if there is no difference, 1 if there is at least 1 difference. | |
template<class T > | |
int | diffVectors (vector< T > array1, vector< T > array2, bool compare_exact=1, bool print_all=0) |
Find the difference between 2 vectors. Return 0 if there is no difference, 1 if there is at least 1 difference. | |
template<class T > | |
int | deleteMatrix (T **xp2_matrix, int rowCount) |
template<class T > | |
int | deleteMatrix (T ***xp3_matrix, int rowCount) |
template<class T > | |
void | displayCompressedRowMatrix (T **xp2_Value, int rowCount, bool structureOnly=false) |
template<class T > | |
void | displayMatrix (T **xp2_Value, int rowCount, int columnCount, bool structureOnly=false) |
template<class T > | |
void | displayVector (T *xp2_Value, int size, bool structureOnly=false) |
template<class T > | |
void | displayAdjacencyMatrix (vector< vector< T > > &xp2_Value, bool structureOnly=false) |
Used mainly to debug GraphColoringInterface::IndirectRecover() routine. |
bool CompressedRowMatricesREqual | ( | double ** | dp3_Value, | |
double ** | dp3_NewValue, | |||
int | rowCount, | |||
bool | compare_exact = 1 , |
|||
bool | print_all = 0 | |||
) |
Compare dp3_Value with dp3_NewValue and see if all the values are equal.
If (compare_exact == 0) num1 and num2 are consider equal if 0.99 <= num1/num2 <= 1.02 If (print_all == 1) all cases of non-equal will be print out. Normally (when print_all == 0), this rountine will stop after the first non-equal.
Definition at line 494 of file extra.cpp.
Referenced by main().
void ConvertDIMACSFormat2MatrixMarketFormat | ( | string | fileNameNoExt | ) |
Covert file with DIMACS format to Matrix Market format.
DIMACS graph format: http://www.dis.uniroma1.it/~challenge9/format.shtml#graph Note: DIMACS graph format is for directed graph => the equivalent matrix is squared and non-systemic
Read input from file "<fileNameNoExt>.gr" (DIMACS graph format) and generate file "<fileNameNoExt>.mtx" (Matrix Market format)
int ConvertMatrixMarketFormatToRowCompressedFormat | ( | string | s_InputFile, | |
unsigned int *** | uip3_SparsityPattern, | |||
double *** | dp3_Value, | |||
int & | rowCount, | |||
int & | columnCount | |||
) |
Read the sparse matrix from Matrix-Market-format file and convert to compress sparse row format "uip3_SparsityPattern" & "dp3_Value".
Read in a matrix from matrix-market format file and create a matrix stored in compressed sparse row format The Matrix-Market-format has 3 values in each row, the row index, column index and numerical value of each nonzero. The last 4 parameters of this routine are output parameters (unsigned int *** uip3_SparsityPattern, double*** dp3_Value,int &rowCount, int &columnCount)
Definition at line 266 of file extra.cpp.
References mm_is_coordinate, mm_is_general, mm_is_integer, mm_is_pattern, mm_is_real, mm_is_symmetric, mm_read_banner(), and mm_typecode_to_str().
Referenced by f(), and main().
int deleteMatrix | ( | T ** | xp2_matrix, | |
int | rowCount | |||
) |
Definition at line 191 of file extra.h.
Referenced by deleteMatrix().
int deleteMatrix | ( | T *** | xp3_matrix, | |
int | rowCount | |||
) |
Definition at line 206 of file extra.h.
References deleteMatrix().
int diffArrays | ( | T * | array1, | |
T * | array2, | |||
int | rowCount, | |||
bool | compare_exact = 1 , |
|||
bool | print_all = 0 | |||
) |
int diffVectors | ( | vector< T > | array1, | |
vector< T > | array2, | |||
bool | compare_exact = 1 , |
|||
bool | print_all = 0 | |||
) |
void displayAdjacencyMatrix | ( | vector< vector< T > > & | xp2_Value, | |
bool | structureOnly = false | |||
) |
void displayCompressedRowMatrix | ( | T ** | xp2_Value, | |
int | rowCount, | |||
bool | structureOnly = false | |||
) |
void displayMatrix | ( | T ** | xp2_Value, | |
int | rowCount, | |||
int | columnCount, | |||
bool | structureOnly = false | |||
) |
void displayVector | ( | T * | xp2_Value, | |
int | size, | |||
bool | structureOnly = false | |||
) |
Definition at line 273 of file extra.h.
Referenced by main(), and RowCompressedFormat_2_SparseSolversFormat_StructureOnly().
int GenerateValues | ( | unsigned int ** | uip2_SparsityPattern, | |
int | rowCount, | |||
double *** | dp3_Value | |||
) |
int GenerateValuesForSymmetricMatrix | ( | unsigned int ** | uip2_SparsityPattern, | |
int | rowCount, | |||
double *** | dp3_Value | |||
) |
bool isValidOrdering | ( | vector< int > & | ordering, | |
int | offset = 0 | |||
) |
int MatrixMultiplication_SxV | ( | unsigned int ** | uip3_SparsityPattern, | |
double ** | dp3_Value, | |||
int | rowCount, | |||
int | columnCount, | |||
double ** | dp2_seed, | |||
int | colorCount, | |||
double *** | dp3_CompressedMatrix | |||
) |
Multiply the seed matrix dp2_seed with the original sparse matrix (uip3_SparsityPattern,dp3_Value) (in compress sparse row format) and store the result in "dp3_CompressedMatrix".
(*dp3_CompressedMatrix) = dp2_seed * (*dp3_Value)
Definition at line 467 of file extra.cpp.
Referenced by main().
int MatrixMultiplication_VxS | ( | unsigned int ** | uip3_SparsityPattern, | |
double ** | dp3_Value, | |||
int | rowCount, | |||
int | columnCount, | |||
double ** | dp2_seed, | |||
int | colorCount, | |||
double *** | dp3_CompressedMatrix | |||
) |
Multiply the original sparse matrix (uip3_SparsityPattern,dp3_Value) (in compress sparse row format) with the seed matrix dp2_seed and store the result in "dp3_CompressedMatrix".
(*dp3_CompressedMatrix) = (*dp3_Value) * dp2_seed
Definition at line 440 of file extra.cpp.
Referenced by main().
void randomOrdering | ( | vector< int > & | ordering | ) |
Definition at line 175 of file extra.cpp.
Referenced by ColPack::BipartiteGraphPartialOrdering::ColumnRandomOrdering(), ColPack::GraphOrdering::RandomOrdering(), ColPack::BipartiteGraphOrdering::RandomOrdering(), and ColPack::BipartiteGraphPartialOrdering::RowRandomOrdering().
int ReadRowCompressedFormat | ( | string | s_InputFile, | |
unsigned int *** | uip3_SparsityPattern, | |||
int & | rowCount, | |||
int & | columnCount | |||
) |
Read a Row Compressed Format file.
Read a Row Compressed Format file Line 1: <# of rows> <# of columns> <# of non-zeros> Line 2-(# of non-zeros + 1): <# of non-zeros in that row> <index of the 1st non-zero> <index of the 2nd non-zero> ... <index of the (# of non-zeros in that row)th non-zero>
int RowCompressedFormat_2_SparseSolversFormat_StructureOnly | ( | unsigned int ** | uip2_HessianSparsityPattern, | |
unsigned int | ui_rowCount, | |||
unsigned int ** | ip2_RowIndex, | |||
unsigned int ** | ip2_ColumnIndex | |||
) |
Build the index struture from Row Compressed Format to Sparse Solvers Format.
ip2_RowIndex and ip2_ColumnIndex will be allocated memory and populated with the matrix structure in Sparse Solvers Format
Input:
Output:
Definition at line 105 of file extra.cpp.
References displayVector(), and Pause().
Referenced by ColPack::HessianRecovery::DirectRecover_SparseSolversFormat(), and ColPack::HessianRecovery::IndirectRecover_SparseSolversFormat().
int Times2 | ( | double ** | dp2_Values, | |
int | i_RowCount, | |||
int | i_ColumnCount | |||
) |
int Times2Plus1point5 | ( | double ** | dp2_Values, | |
int | i_RowCount, | |||
int | i_ColumnCount | |||
) |
string toUpper | ( | string | input | ) |
Convert all the characters in input to upper case, ' ', '\ t', '\ n' will be converted to '_'.
Definition at line 186 of file extra.cpp.
Referenced by ColPack::BipartiteGraphBicoloringInterface::Bicoloring(), ColPack::GraphOrdering::OrderVertices(), ColPack::BipartiteGraphPartialOrdering::OrderVertices(), ColPack::BipartiteGraphOrdering::OrderVertices(), and ColPack::BipartiteGraphPartialColoringInterface::PartialDistanceTwoColoring().