This file is indexed.

/usr/include/ossim/base/ossimAdjustmentExecutive.h is in libossim-dev 2.2.2-1.

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
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
//----------------------------------------------------------------------------
//
// License:  See top level LICENSE.txt file.
//
// Author:  David Hicks
// test
//
// Description: Executive class for adjustment operations.
//----------------------------------------------------------------------------
#ifndef ossimAdjustmentExecutive_HEADER
#define ossimAdjustmentExecutive_HEADER

#include <ossim/base/ossimObject.h>
#include <ossim/base/ossimObservationSet.h>
#include <ossim/base/ossimDpt.h>
#include <ossim/base/ossimGpt.h>
#include <ossim/base/ossimString.h>
#include <ossim/matrix/newmat.h>
#include <ossim/matrix/newmatap.h>
#include <ossim/matrix/newmatio.h>

#include <ctime>
#include <vector>
#include <iostream>

class ossimWLSBundleSolution;
class ossimAdjSolutionAttributes;


class OSSIM_DLL ossimAdjustmentExecutive : public ossimObject
{
public:

   /**
    * @brief constructor
    */
   ossimAdjustmentExecutive(std::ostream& report);
   
   /** @brief ossimObservationSet constructor
    *
    * @param obsSet     tiepoint observation set.
    */
   ossimAdjustmentExecutive(ossimObservationSet& obsSet, std::ostream& report);
   

   /** @brief destructor */
   ~ossimAdjustmentExecutive();
   
   /**
    * @brief initialize adjustment solution
    *
    * @param obsSet     tiepoint observation set.
    *
    * @return true on success, false on error.
    */
   bool initializeSolution(ossimObservationSet& obsSet);

   /**
    * @brief run adjustment solution
    *
    * @return true on success, false on error.
    */
   bool runSolution();

   /**
    * @brief summarize solution
    */
   void summarizeSolution() const;


   /**
    * @brief compute mean and RMS error of residuals
    *
    * @param res   image residual matrix.
    *
    * @return true on success, false on error.
    */
   bool computeResidualStatistics(NEWMAT::Matrix& res);


   /**
    * @brief compute SEUW
    *
    * @return   standard error of unit weight.
    */
   double computeSEUW();
   
   /**
    * @brief Print parameter correction method.
    */
   std::ostream& printParameterCorrectionSummary(std::ostream& out) const;
   
   /**
    * @brief Print observation correction method.
    */
   std::ostream& printObservationCorrectionSummary(std::ostream& out) const;
   
   /**
    * @brief Print residuals method.
    */
   std::ostream& printResidualSummary(std::ostream& out) const;


   inline bool isValid() const { return theExecValid; }

   void setMaxIter(const int maxIter) { theMaxIter = maxIter; }

   void setConvCriteria(const int convCriteria) { theConvCriteria = convCriteria; }

protected:
   bool theExecValid;

   // Observation set
   ossimObservationSet* theObsSet;

   // Optimizer
   ossimWLSBundleSolution* theSol;

   // Attribute interface
   ossimAdjSolutionAttributes* theSolAttributes;

   // Status parameters
   double theConvCriteria;
   int    theMaxIter;
   bool   theMaxIterExceeded;
   bool   theSolDiverged;
   bool   theSolConverged;

   // Traits
   int theNumObsInSet;
   int theNumImages;
   int theNumParams;
   int theNumMeasurements;
   int theRankN;

   // Solution arrays
   NEWMAT::Matrix theMeasResiduals; // theNumMeasurements X 2
   NEWMAT::Matrix theObjPartials;   // theNumObjObs*3 X 2
   NEWMAT::Matrix theParPartials;   // theNumImages*(npar/image) X 2

   // Statistics
   double theXrms;
   double theYrms;
   double theXmean;
   double theYmean;
   std::vector<double> theSEUW;

   // Adjustable parameter info
   std::vector<double> theParInitialValues;
   std::vector<double> theParInitialStdDev;
   std::vector<ossimString> theParDesc;
   std::vector<int> theImgs;

   // Observation info
   std::vector<double> theObsInitialValues;
   std::vector<double> theObsInitialStdDev;
   
   std::ostream& theRep;
                                  
   
   /**
    * @brief Update adjustable parameters.
    */
   bool updateParameters();
   
   /**
    * @brief Update observatin.
    */
   bool updateObservations();

};

#endif // #ifndef ossimAdjustmentExecutive_HEADER