COSMOS core  1.0.2 (beta)
Comprehensive Open-architecture Solution for Mission Operations Systems
lsfit.h
Go to the documentation of this file.
1 /********************************************************************
2 * Copyright (C) 2015 by Interstel Technologies, Inc.
3 * and Hawaii Space Flight Laboratory.
4 *
5 * This file is part of the COSMOS/core that is the central
6 * module for COSMOS. For more information on COSMOS go to
7 * <http://cosmos-project.com>
8 *
9 * The COSMOS/core software is licenced under the
10 * GNU Lesser General Public License (LGPL) version 3 licence.
11 *
12 * You should have received a copy of the
13 * GNU Lesser General Public License
14 * If not, go to <http://www.gnu.org/licenses/>
15 *
16 * COSMOS/core is free software: you can redistribute it and/or
17 * modify it under the terms of the GNU Lesser General Public License
18 * as published by the Free Software Foundation, either version 3 of
19 * the License, or (at your option) any later version.
20 *
21 * COSMOS/core is distributed in the hope that it will be useful, but
22 * WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 * Lesser General Public License for more details.
25 *
26 * Refer to the "licences" folder for further information on the
27 * condititons and terms to use this software.
28 ********************************************************************/
29 
30 #ifndef _MATH_LSFIT_H
31 #define _MATH_LSFIT_H
32 
33 #include "support/configCosmos.h"
34 #include "vector.h"
35 // #include "quaternion.h"
36 // TODO: remove dependency from mathlib (uvector)
37 #include "math/mathlib.h"
38 
39 #include <cstdint>
40 
41 // TODO: bring LsFit from mathlib
42 
43 //class LsFit
44 //{
45 //private:
46 // //! Least Squares Fit Element
47 // /*! Contains the dependent (x) and independent (y) values for a single element of a ::fitstruc.
48 // * The ::uvector allows both quaternions and rvector to be fit.
49 // */
50 // struct fitelement
51 // {
52 // // Independent variable
53 // double x;
54 // // Double, rvector or quaternion dependent variable
55 // uvector y;
56 // } ;
57 
58 // //! Least Squares Fit Structure
59 // /*! Contains the data for a second order least squares fit of N elements that are type
60 // * ::rvector or ::quaternion.
61 // */
62 // // Number of elements in fit
63 // uint16_t element_cnt;
64 // // Number of axes (double, rvector, quaternion)
65 // uint16_t depth;
66 // // Order of fit
67 // uint32_t order;
68 // // base level subtracted from independent variable before fitting
69 // double basex;
70 // // Of size element_cnt
71 // deque<fitelement> var;
72 
73 // vector< vector<double> > parms;
74 
75 // void fit();
76 
77 //public:
78 // double meanx;
79 // uvector meany;
80 // double stdevx;
81 // uvector stdevy;
82 // // Minimum reasonable step in dependent variable
83 // double resolution;
84 
85 // // constructors
86 // LsFit();
87 // LsFit(uint16_t element_cnt);
88 // LsFit(uint16_t element_cnt, uint16_t ord);
89 // LsFit(uint16_t cnt, uint16_t ord, double res);
90 
91 // void update(double x, double y);
92 // void update(double x, rvector y);
93 // void update(double x, quaternion y);
94 // void update(fitelement cfit, uint16_t dep);
95 // double lastx();
96 // double eval(double x);
97 // rvector evalrvector(double x);
98 // quaternion evalquaternion(double x);
99 // double slope(double x);
100 // rvector slopervector(double x);
101 // quaternion slopequaternion(double x);
102 // vector<vector<double> > getparms(double x);
103 //};
104 
105 #endif // _MATH_LSFIT_H
Headers and definitions common to all COSMOS.
mathlib include file