/usr/include/ColPack/RecoveryCore.h is in libcolpack-dev 1.0.9-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | /************************************************************************************
Copyright (C) 2005-2008 Assefaw H. Gebremedhin, Arijit Tarafdar, Duc Nguyen,
Alex Pothen
This file is part of ColPack.
ColPack is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ColPack is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with ColPack. If not, see <http://www.gnu.org/licenses/>.
************************************************************************************/
#ifndef RECOVERYCORE_H
#define RECOVERYCORE_H
using namespace std;
namespace ColPack
{
/** @ingroup group5
* @brief class RecoveryCore in @link group5@endlink.
*
* This class will keep track of all the memories allocated and
* its destructor will be responsible to destroy the memory allocated for
* arrays/matrices of all the Recovery classes.
*
* This class currently supports matrices in one of the following three formats:
* RowCompressedFormat (AF), CoordinateFormat (CF), and SparseSolversFormat (SSF)
*
* For one graph, you can call the Recovery routine once for each format.
* Calling the same recovery function twice will make this class reset() (see the example below):
*
* Matrix in a particular format is generated when the Recovery routine of the corresponding format is called.
* For example, here is one possible sequence:
* JacobianRecovery1D jr1d; // create an oject of subclass of RecoveryCore
* jr1d.RecoverD2Row_RowCompressedFormat(graph1 , ...); // output matrix in ADOLC Format is generated
* jr1d.RecoverD2Row_SparseSolversFormat(graph1 , ...); // output matrix in Sparse Solvers Format is generated
* jr1d.RecoverD2Row_CoordinateFormat(graph1 , ...); // output matrix in Coordinate Format is generated
*
* // Matrices in all 3 formats will be deallocated, a new output matrix in Coordinate Format is generated
* // Here, because the user call RecoverD2Row_CoordinateFormat() for the second time,
* // we assume that the user have a new graph, so clean up old matrices is necessary.
* // Note: DO NOT call the same recovery function twice unless you have a new graph!!!
* jr1d.RecoverD2Row_CoordinateFormat(graph2 , ...);
*/
class RecoveryCore
{
public: // !!!NEED DOCUMENT
RecoveryCore();
~RecoveryCore();
protected:
//string formatType; //At this point, could be either: "RowCompressedFormat," "CoordinateFormat," or "SparseSolversFormat"
//for ADOL-C Format (AF)
bool AF_available;
int i_AF_rowCount;
double** dp2_AF_Value;
//for Sparse Solvers Format (SSF)
bool SSF_available;
int i_SSF_rowCount;
unsigned int* ip_SSF_RowIndex;
unsigned int* ip_SSF_ColumnIndex;
double* dp_SSF_Value;
//for Coordinate Format (CF)
bool CF_available;
int i_CF_rowCount;
unsigned int* ip_CF_RowIndex;
unsigned int* ip_CF_ColumnIndex;
double* dp_CF_Value;
void reset();
};
}
#endif
|