1 /* Copyright 2002-2024 CS GROUP
2 * Licensed to CS GROUP (CS) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * CS licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package org.orekit.files.ccsds.ndm.cdm;
18
19 import org.hipparchus.linear.MatrixUtils;
20 import org.hipparchus.linear.RealMatrix;
21 import org.orekit.files.ccsds.section.CommentsContainer;
22
23 /**
24 * Container for RTN covariance matrix data. This class as a RealMatrix as
25 * attribute which can be acces with getRTNCovariaxMatrix method. Beware that
26 * there are thus 2 ways to modify the RTN covariance : setC... ( setCrr,
27 * setCtr ...) which should be prioritized and getRTNCovariaxMatrix.setEntry(row, col, value).
28 * <p> The RTN Covariance Matrix is provided in the 9×9 Lower Triangular Form. All parameters of the 6×6 position/velocity submatrix
29 * are mandatory. The remaining elements will return NaN if not provided. </p>
30 * @author Melina Vanel
31 * @since 11.2
32 */
33 public class RTNCovariance extends CommentsContainer {
34
35 /** RTN covariance matrix. */
36 private RealMatrix covarianceMatrix;
37
38 /** Simple constructor. To update matrix value there are 2 ways to modify the RTN
39 * covariance : setC... ( setCrr, setCtr ...) which should be prioritized and
40 * getRTNCovariaxMatrix.setEntry(row, col, value).
41 * <p> The RTN Covariance Matrix is provided in the 9×9 Lower Triangular Form. All parameters of the 6×6 position/velocity submatrix
42 * are mandatory. The remaining elements will return NaN if not provided. </p>
43 */
44 public RTNCovariance() {
45 covarianceMatrix = MatrixUtils.createRealMatrix(9, 9);
46 for (int i = 0; i < covarianceMatrix.getRowDimension(); ++i) {
47 for (int j = 0; j <= i; ++j) {
48 covarianceMatrix.setEntry(i, j, Double.NaN);
49 }
50 }
51
52 }
53
54 /** {@inheritDoc} */
55 @Override
56 public void validate(final double version) {
57 super.validate(version);
58 // We only check values that are mandatory in a cdm file
59 checkNotNaN(getCrr(), RTNCovarianceKey.CR_R.name());
60 checkNotNaN(getCtr(), RTNCovarianceKey.CT_R.name());
61 checkNotNaN(getCtt(), RTNCovarianceKey.CT_T.name());
62 checkNotNaN(getCnr(), RTNCovarianceKey.CN_R.name());
63 checkNotNaN(getCnt(), RTNCovarianceKey.CN_T.name());
64 checkNotNaN(getCnn(), RTNCovarianceKey.CN_N.name());
65 checkNotNaN(getCrdotr(), RTNCovarianceKey.CRDOT_R.name());
66 checkNotNaN(getCrdott(), RTNCovarianceKey.CRDOT_T.name());
67 checkNotNaN(getCrdotn(), RTNCovarianceKey.CRDOT_N.name());
68 checkNotNaN(getCrdotrdot(), RTNCovarianceKey.CRDOT_RDOT.name());
69 checkNotNaN(getCtdotr(), RTNCovarianceKey.CTDOT_R.name());
70 checkNotNaN(getCtdott(), RTNCovarianceKey.CTDOT_T.name());
71 checkNotNaN(getCtdotn(), RTNCovarianceKey.CTDOT_N.name());
72 checkNotNaN(getCtdotrdot(), RTNCovarianceKey.CTDOT_RDOT.name());
73 checkNotNaN(getCtdottdot(), RTNCovarianceKey.CTDOT_TDOT.name());
74 checkNotNaN(getCndotr(), RTNCovarianceKey.CNDOT_R.name());
75 checkNotNaN(getCndott(), RTNCovarianceKey.CNDOT_T.name());
76 checkNotNaN(getCndotn(), RTNCovarianceKey.CNDOT_N.name());
77 checkNotNaN(getCndotrdot(), RTNCovarianceKey.CNDOT_RDOT.name());
78 checkNotNaN(getCndottdot(), RTNCovarianceKey.CNDOT_TDOT.name());
79 checkNotNaN(getCndotndot(), RTNCovarianceKey.CNDOT_NDOT.name());
80 }
81
82 /** Set an entry in the RTN covariance matrix.
83 * <p>
84 * Both m(j, k) and m(k, j) are set.
85 * </p>
86 * @param j row index (must be between 0 and 5 (inclusive)
87 * @param k column index (must be between 0 and 5 (inclusive)
88 * @param entry value of the matrix entry
89 */
90 public void setCovarianceMatrixEntry(final int j, final int k, final double entry) {
91 covarianceMatrix.setEntry(j, k, entry);
92 covarianceMatrix.setEntry(k, j, entry);
93 }
94
95 /**
96 * Get the RTN covariance matrix.
97 * <p> The RTN Covariance Matrix is provided in the 9×9 Lower Triangular Form. All parameters of the 6×6 position/velocity submatrix
98 * are mandatory. The remaining elements will return NaN if not provided. </p>
99 * @return the RTN covariance matrix
100 */
101 public RealMatrix getRTNCovarianceMatrix() {
102 return covarianceMatrix;
103 }
104
105 /**
106 * Get the object [1,1] in covariance matrix (with index starting at 1).
107 * @return the object [1,1] in covariance matrix (in m²)
108 */
109 public double getCrr() {
110 return covarianceMatrix.getEntry(0, 0);
111 }
112
113 /**
114 * Set the object [1,1] in covariance matrix (with index starting at 1).
115 * @param CRR = object [1,1] in covariance matrix (in m²)
116 */
117 public void setCrr(final double CRR) {
118 refuseFurtherComments();
119 setCovarianceMatrixEntry(0, 0, CRR);
120 }
121
122 /**
123 * Get the object [2,1] in covariance matrix (with index starting at 1).
124 * @return the object [2,1] in covariance matrix (in m²)
125 */
126 public double getCtr() {
127 return covarianceMatrix.getEntry(1, 0);
128 }
129
130 /**
131 * Set the object [2,1] in covariance matrix (with index starting at 1).
132 * @param CTR = object [2,1] in covariance matrix (in m²)
133 */
134 public void setCtr(final double CTR) {
135 refuseFurtherComments();
136 setCovarianceMatrixEntry(1, 0, CTR);
137 }
138
139 /**
140 * Get the object [2,2] in covariance matrix (with index starting at 1).
141 * @return the object [2,2] in covariance matrix (in m²)
142 */
143 public double getCtt() {
144 return covarianceMatrix.getEntry(1, 1);
145 }
146
147 /**
148 * Set the object [2,2] in covariance matrix (with index starting at 1).
149 * @param CTT = object [2,2] in covariance matrix (in m²)
150 */
151 public void setCtt(final double CTT) {
152 refuseFurtherComments();
153 setCovarianceMatrixEntry(1, 1, CTT);
154 }
155
156 /**
157 * Get the object [3,1] in covariance matrix (with index starting at 1).
158 * @return the object [3,1] in covariance matrix (in m²)
159 */
160 public double getCnr() {
161 return covarianceMatrix.getEntry(2, 0);
162 }
163
164 /**
165 * Set the object [3,1] in covariance matrix (with index starting at 1).
166 * @param CNR = object [3,1] in covariance matrix (in m²)
167 */
168 public void setCnr(final double CNR) {
169 refuseFurtherComments();
170 setCovarianceMatrixEntry(2, 0, CNR);
171 }
172
173 /**
174 * Get the object [3,2] in covariance matrix (with index starting at 1).
175 * @return the object [3,2] in covariance matrix (in m²)
176 */
177 public double getCnt() {
178 return covarianceMatrix.getEntry(2, 1);
179 }
180
181 /**
182 * Set the object [3,2] in covariance matrix (with index starting at 1).
183 * @param CNT = object [3,2] in covariance matrix (in m²)
184 */
185 public void setCnt(final double CNT) {
186 refuseFurtherComments();
187 setCovarianceMatrixEntry(2, 1, CNT);
188 }
189
190 /**
191 * Get the object [3,3] in covariance matrix (with index starting at 1).
192 * @return the object [3,3] in covariance matrix (in m²)
193 */
194 public double getCnn() {
195 return covarianceMatrix.getEntry(2, 2);
196 }
197
198 /**
199 * Set the object [3,3] in covariance matrix (with index starting at 1).
200 * @param CNN = object [3,3] in covariance matrix (in m²)
201 */
202 public void setCnn(final double CNN) {
203 refuseFurtherComments();
204 setCovarianceMatrixEntry(2, 2, CNN);
205 }
206
207 /**
208 * Get the object [4,1] in covariance matrix (with index starting at 1).
209 * @return the object [4,1] in covariance matrix (in m²/s)
210 */
211 public double getCrdotr() {
212 return covarianceMatrix.getEntry(3, 0);
213 }
214
215 /**
216 * Set the object [4,1] in covariance matrix (with index starting at 1).
217 * @param CRdotR = object [4,1] in covariance matrix (in m²/s)
218 */
219 public void setCrdotr(final double CRdotR) {
220 refuseFurtherComments();
221 setCovarianceMatrixEntry(3, 0, CRdotR);
222 }
223
224 /**
225 * Get the object [4,2] in covariance matrix (with index starting at 1).
226 * @return the object [4,2] in covariance matrix (in m²/s)
227 */
228 public double getCrdott() {
229 return covarianceMatrix.getEntry(3, 1);
230 }
231
232 /**
233 * Set the object [4, 2] in covariance matrix (with index starting at 1).
234 * @param CRdotT = object [4, 2] in covariance matrix (in m²/s)
235 */
236 public void setCrdott(final double CRdotT) {
237 refuseFurtherComments();
238 setCovarianceMatrixEntry(3, 1, CRdotT);
239 }
240
241 /**
242 * Get the object [4, 3] in covariance matrix (with index starting at 1) .
243 * @return the object [4, 3] in covariance matrix (in m²/s)
244 */
245 public double getCrdotn() {
246 return covarianceMatrix.getEntry(3, 2);
247 }
248
249 /**
250 * Set the object [4, 3] in covariance matrix (with index starting at 1).
251 * @param CRdotN = object [4,3] in covariance matrix (in m²/s)
252 */
253 public void setCrdotn(final double CRdotN) {
254 refuseFurtherComments();
255 setCovarianceMatrixEntry(3, 2, CRdotN);
256 }
257
258 /**
259 * Get the object [4, 4] in covariance matrix (with index starting at 1).
260 * @return the object [4, 4] in covariance matrix (in m²/s²)
261 */
262 public double getCrdotrdot() {
263 return covarianceMatrix.getEntry(3, 3);
264 }
265
266 /**
267 * Set the object [4, 4] in covariance matrix (with index starting at 1).
268 * @param CRdotRdot = object [4, 4] in covariance matrix (in m²/s²)
269 */
270 public void setCrdotrdot(final double CRdotRdot) {
271 refuseFurtherComments();
272 setCovarianceMatrixEntry(3, 3, CRdotRdot);
273 }
274
275 /**
276 * Get the object [5, 1] in covariance matrix (with index starting at 1).
277 * @return the object [5, 1] in covariance matrix (in m²/s)
278 */
279 public double getCtdotr() {
280 return covarianceMatrix.getEntry(4, 0);
281 }
282
283 /**
284 * Set the object [5,1] in covariance matrix (with index starting at 1).
285 * @param CTdotR = object [5,1] in covariance matrix (in m²/s)
286 */
287 public void setCtdotr(final double CTdotR) {
288 refuseFurtherComments();
289 setCovarianceMatrixEntry(4, 0, CTdotR);
290 }
291
292 /**
293 * Get the object [5,2] in covariance matrix (with index starting at 1).
294 * @return the object [5,2] in covariance matrix (in m²/s)
295 */
296 public double getCtdott() {
297 return covarianceMatrix.getEntry(4, 1);
298 }
299
300 /**
301 * Set the object [5,2] in covariance matrix (with index starting at 1).
302 * @param CTdotT = object [5,2] in covariance matrix (in m²/s)
303 */
304 public void setCtdott(final double CTdotT) {
305 refuseFurtherComments();
306 setCovarianceMatrixEntry(4, 1, CTdotT);
307 }
308
309 /**
310 * Get the object [5,3] in covariance matrix (with index starting at 1).
311 * @return the object [5,3] in covariance matrix (in m²/s)
312 */
313 public double getCtdotn() {
314 return covarianceMatrix.getEntry(4, 2);
315 }
316
317 /**
318 * Set the object [5,3] in covariance matrix (with index starting at 1).
319 * @param CTdotN = object [5,3] in covariance matrix (in m²/s)
320 */
321 public void setCtdotn(final double CTdotN) {
322 refuseFurtherComments();
323 setCovarianceMatrixEntry(4, 2, CTdotN);
324 }
325
326 /**
327 * Get the object [5,4] in covariance matrix (with index starting at 1).
328 * @return the object [5,4] in covariance matrix (in m²/s²)
329 */
330 public double getCtdotrdot() {
331 return covarianceMatrix.getEntry(4, 3);
332 }
333
334 /**
335 * Set the object [5,4] in covariance matrix (with index starting at 1).
336 * @param CTdotRdot = object [5,4] in covariance matrix (in m²/s²)
337 */
338 public void setCtdotrdot(final double CTdotRdot) {
339 refuseFurtherComments();
340 setCovarianceMatrixEntry(4, 3, CTdotRdot);
341 }
342
343 /**
344 * Get the object [5,5] in covariance matrix (with index starting at 1).
345 * @return the object [5,5] in covariance matrix (in m²/s²)
346 */
347 public double getCtdottdot() {
348 return covarianceMatrix.getEntry(4, 4);
349 }
350
351 /**
352 * Set the object [5,5] in covariance matrix (with index starting at 1).
353 * @param CTdotTdot = object [5,5] in covariance matrix (in m²/s²)
354 */
355 public void setCtdottdot(final double CTdotTdot) {
356 refuseFurtherComments();
357 setCovarianceMatrixEntry(4, 4, CTdotTdot);
358 }
359
360 /**
361 * Get the object [6,1] in covariance matrix (with index starting at 1).
362 * @return the object [6,1] in covariance matrix (in m²/s)
363 */
364 public double getCndotr() {
365 return covarianceMatrix.getEntry(5, 0);
366 }
367
368 /**
369 * Set the object [6,1] in covariance matrix (with index starting at 1).
370 * @param CNdotR = object [6,1] in covariance matrix (in m²/s)
371 */
372 public void setCndotr(final double CNdotR) {
373 refuseFurtherComments();
374 setCovarianceMatrixEntry(5, 0, CNdotR);
375 }
376
377 /**
378 * Get the object [6,2] in covariance matrix (with index starting at 1).
379 * @return the object [6,2] in covariance matrix (in m²/s)
380 */
381 public double getCndott() {
382 return covarianceMatrix.getEntry(5, 1);
383 }
384
385 /**
386 * Set the object [6,2] in covariance matrix (with index starting at 1).
387 * @param CNdotT = object [6,2] in covariance matrix (in m²/s)
388 */
389 public void setCndott(final double CNdotT) {
390 refuseFurtherComments();
391 setCovarianceMatrixEntry(5, 1, CNdotT);
392 }
393
394 /**
395 * Get the object [6,3] in covariance matrix (with index starting at 1).
396 * @return the object [6,3] in covariance matrix (in m²/s)
397 */
398 public double getCndotn() {
399 return covarianceMatrix.getEntry(5, 2);
400 }
401
402 /**
403 * Set the object [6,3] in covariance matrix (with index starting at 1).
404 * @param CNdotN = object [6,3] in covariance matrix (in m²/s)
405 */
406 public void setCndotn(final double CNdotN) {
407 refuseFurtherComments();
408 setCovarianceMatrixEntry(5, 2, CNdotN);
409 }
410
411 /**
412 * Get the object [6,4] in covariance matrix (with index starting at 1).
413 * @return the object [6,4] in covariance matrix (in m²/s²)
414 */
415 public double getCndotrdot() {
416 return covarianceMatrix.getEntry(5, 3);
417 }
418
419 /**
420 * Set the object [6,4] in covariance matrix (with index starting at 1).
421 * @param CNdotRdot = object [6,4] in covariance matrix (in m²/s²)
422 */
423 public void setCndotrdot(final double CNdotRdot) {
424 refuseFurtherComments();
425 setCovarianceMatrixEntry(5, 3, CNdotRdot);
426 }
427
428 /**
429 * Get the object [6,5] in covariance matrix (with index starting at 1).
430 * @return the object [6,5] in covariance matrix (in m²/s²)
431 */
432 public double getCndottdot() {
433 return covarianceMatrix.getEntry(5, 4);
434 }
435
436 /**
437 * Set the object [6,5] in covariance matrix (with index starting at 1).
438 * @param CNdotTdot = object [6,5] in covariance matrix (in m²/s²)
439 */
440 public void setCndottdot(final double CNdotTdot) {
441 refuseFurtherComments();
442 setCovarianceMatrixEntry(5, 4, CNdotTdot);
443 }
444
445 /**
446 * Get the object [6,6] in covariance matrix (with index starting at 1).
447 * @return the object [6,6] in covariance matrix (in m²/s²)
448 */
449 public double getCndotndot() {
450 return covarianceMatrix.getEntry(5, 5);
451 }
452
453 /**
454 * Set the object [6,6] in covariance matrix (with index starting at 1).
455 * @param CNdotNdot = object [6,6] in covariance matrix (in m²/s²)
456 */
457 public void setCndotndot(final double CNdotNdot) {
458 refuseFurtherComments();
459 setCovarianceMatrixEntry(5, 5, CNdotNdot);
460 }
461
462 /**
463 * Get the object [7,1] in covariance matrix (with index starting at 1).
464 * @return the object [7,1] in covariance matrix (in m³/kg)
465 */
466 public double getCdrgr() {
467 return covarianceMatrix.getEntry(6, 0);
468 }
469
470 /**
471 * Set the object [7,1] in covariance matrix (with index starting at 1).
472 * @param CDRGR = object [7,1] in covariance matrix (in m³/kg)
473 */
474 public void setCdrgr(final double CDRGR) {
475 refuseFurtherComments();
476 setCovarianceMatrixEntry(6, 0, CDRGR);
477 }
478
479 /**
480 * Get the object [7,2] in covariance matrix.
481 * @return the object [7,2] in covariance matrix (in m³/kg)
482 */
483 public double getCdrgt() {
484 return covarianceMatrix.getEntry(6, 1);
485 }
486
487 /**
488 * Set the object [7,2] in covariance matrix (with index starting at 1).
489 * @param CDRGT = object [7,2] in covariance matrix (in m³/kg)
490 */
491 public void setCdrgt(final double CDRGT) {
492 refuseFurtherComments();
493 setCovarianceMatrixEntry(6, 1, CDRGT);
494 }
495
496 /**
497 * Get the object [7,3] in covariance matrix (with index starting at 1).
498 * @return the object [7,3] in covariance matrix (in m³/kg)
499 */
500 public double getCdrgn() {
501 return covarianceMatrix.getEntry(6, 2);
502 }
503
504 /**
505 * Set the object [7,3] in covariance matrix (with index starting at 1).
506 * @param CDRGN = object [7,3] in covariance matrix (in m³/kg)
507 */
508 public void setCdrgn(final double CDRGN) {
509 refuseFurtherComments();
510 setCovarianceMatrixEntry(6, 2, CDRGN);
511 }
512
513 /**
514 * Get the object [7,4] in covariance matrix (with index starting at 1).
515 * @return the object [7,4] in covariance matrix (in m³/(kg.s))
516 */
517 public double getCdrgrdot() {
518 return covarianceMatrix.getEntry(6, 3);
519 }
520
521 /**
522 * Set the object [7,4] in covariance matrix (with index starting at 1).
523 * @param CDRGRdot = object [7,4] in covariance matrix (in m³/(kg.s))
524 */
525 public void setCdrgrdot(final double CDRGRdot) {
526 refuseFurtherComments();
527 setCovarianceMatrixEntry(6, 3, CDRGRdot);
528 }
529
530 /**
531 * Get the object [7,5] in covariance matrix (with index starting at 1).
532 * @return the object [7,5] in covariance matrix (in m³/(kg.s))
533 */
534 public double getCdrgtdot() {
535 return covarianceMatrix.getEntry(6, 4);
536 }
537
538 /**
539 * Set the object [7,5] in covariance matrix (with index starting at 1).
540 * @param CDRGTdot = object [7,5] in covariance matrix (in m³/(kg.s))
541 */
542 public void setCdrgtdot(final double CDRGTdot) {
543 refuseFurtherComments();
544 setCovarianceMatrixEntry(6, 4, CDRGTdot);
545 }
546
547 /**
548 * Get the object [7,6] in covariance matrix (with index starting at 1).
549 * @return the object [7,6] in covariance matrix (in m³/(kg.s))
550 */
551 public double getCdrgndot() {
552 return covarianceMatrix.getEntry(6, 5);
553 }
554
555 /**
556 * Set the object [7,6] in covariance matrix (with index starting at 1).
557 * @param CDRGNdot = object [7,6] in covariance matrix (in m³/(kg.s))
558 */
559 public void setCdrgndot(final double CDRGNdot) {
560 refuseFurtherComments();
561 setCovarianceMatrixEntry(6, 5, CDRGNdot);
562 }
563
564 /**
565 * Get the object [7,7] in covariance matrix (with index starting at 1).
566 * @return the object [7,7] in covariance matrix (in m⁴/kg²)
567 */
568 public double getCdrgdrg() {
569 return covarianceMatrix.getEntry(6, 6);
570 }
571
572 /**
573 * Set the object [7,7] in covariance matrix (with index starting at 1).
574 * @param CDRGDRG = object [7,7] in covariance matrix (in m⁴/kg²)
575 */
576 public void setCdrgdrg(final double CDRGDRG) {
577 refuseFurtherComments();
578 setCovarianceMatrixEntry(6, 6, CDRGDRG);
579 }
580
581 /**
582 * Get the object [8,1] in covariance matrix (with index starting at 1).
583 * @return the object [8,1] in covariance matrix (in m³/kg)
584 */
585 public double getCsrpr() {
586 return covarianceMatrix.getEntry(7, 0);
587 }
588
589 /**
590 * Set the object [8,1] in covariance matrix (with index starting at 1).
591 * @param CSRPR = object [8,1] in covariance matrix (in m³/kg)
592 */
593 public void setCsrpr(final double CSRPR) {
594 refuseFurtherComments();
595 setCovarianceMatrixEntry(7, 0, CSRPR);
596 }
597
598 /**
599 * Get the object [8,2] in covariance matrix (with index starting at 1).
600 * @return the object [8,2] in covariance matrix (in m³/kg)
601 */
602 public double getCsrpt() {
603 return covarianceMatrix.getEntry(7, 1);
604 }
605
606 /**
607 * Set the object [8,2] in covariance matrix (with index starting at 1).
608 * @param CSRPT = object [8,2] in covariance matrix (in m³/kg)
609 */
610 public void setCsrpt(final double CSRPT) {
611 refuseFurtherComments();
612 setCovarianceMatrixEntry(7, 1, CSRPT);
613 }
614
615 /**
616 * Get the object [8,3] in covariance matrix (with index starting at 1).
617 * @return the object [8,3] in covariance matrix (in m³/kg)
618 */
619 public double getCsrpn() {
620 return covarianceMatrix.getEntry(7, 2);
621 }
622
623 /**
624 * Set the object [8,3] in covariance matrix (with index starting at 1).
625 * @param CSRPN = object [8,3] in covariance matrix (in m³/kg)
626 */
627 public void setCsrpn(final double CSRPN) {
628 refuseFurtherComments();
629 setCovarianceMatrixEntry(7, 2, CSRPN);
630 }
631
632 /**
633 * Get the object [8,4] in covariance matrix (with index starting at 1).
634 * @return the object [8,4] in covariance matrix (in m³/(kg.s))
635 */
636 public double getCsrprdot() {
637 return covarianceMatrix.getEntry(7, 3);
638 }
639
640 /**
641 * Set the object [8,4] in covariance matrix (with index starting at 1).
642 * @param CSRPRdot = object [8,4] in covariance matrix (in m³/(kg.s))
643 */
644 public void setCsrprdot(final double CSRPRdot) {
645 refuseFurtherComments();
646 setCovarianceMatrixEntry(7, 3, CSRPRdot);
647 }
648
649 /**
650 * Get the object [8,5] in covariance matrix (with index starting at 1).
651 * @return the object [8,5] in covariance matrix (in m³/(kg.s))
652 */
653 public double getCsrptdot() {
654 return covarianceMatrix.getEntry(7, 4);
655 }
656
657 /**
658 * Set the object [8,5] in covariance matrix (with index starting at 1).
659 * @param CSRPTdot = object [8,5] in covariance matrix (in m³/(kg.s))
660 */
661 public void setCsrptdot(final double CSRPTdot) {
662 refuseFurtherComments();
663 setCovarianceMatrixEntry(7, 4, CSRPTdot);
664 }
665
666 /**
667 * Get the object [8,6] in covariance matrix (with index starting at 1).
668 * @return the object [8,6] in covariance matrix (in m³/(kg.s))
669 */
670 public double getCsrpndot() {
671 return covarianceMatrix.getEntry(7, 5);
672 }
673
674 /**
675 * Set the object [8,6] in covariance matrix (with index starting at 1).
676 * @param CSRPNdot = object [8,6] in covariance matrix (in m³/(kg.s))
677 */
678 public void setCsrpndot(final double CSRPNdot) {
679 refuseFurtherComments();
680 setCovarianceMatrixEntry(7, 5, CSRPNdot);
681 }
682
683 /**
684 * Get the object [8,7] in covariance matrix (with index starting at 1).
685 * @return the object [8,7] in covariance matrix (in m⁴/kg²)
686 */
687 public double getCsrpdrg() {
688 return covarianceMatrix.getEntry(7, 6);
689 }
690
691 /**
692 * Set the object [8,7] in covariance matrix (with index starting at 1).
693 * @param CSRPDRG = object [8,7] in covariance matrix (in m⁴/kg²)
694 */
695 public void setCsrpdrg(final double CSRPDRG) {
696 refuseFurtherComments();
697 setCovarianceMatrixEntry(7, 6, CSRPDRG);
698 }
699
700 /**
701 * Get the object [8,8] in covariance matrix (with index starting at 1).
702 * @return the object [8,8] in covariance matrix (in m⁴/kg²)
703 */
704 public double getCsrpsrp() {
705 return covarianceMatrix.getEntry(7, 7);
706 }
707
708 /**
709 * Set the object [8,8] in covariance matrix (with index starting at 1).
710 * @param CSRPSRP = object [8,8] in covariance matrix (in m⁴/kg²)
711 */
712 public void setCsrpsrp(final double CSRPSRP) {
713 refuseFurtherComments();
714 setCovarianceMatrixEntry(7, 7, CSRPSRP);
715 }
716
717 /**
718 * Get the object [9,1] in covariance matrix (with index starting at 1).
719 * @return the object [9,1] in covariance matrix (in m²/s²)
720 */
721 public double getCthrr() {
722 return covarianceMatrix.getEntry(8, 0);
723 }
724
725 /**
726 * Set the object [9,1] in covariance matrix (with index starting at 1).
727 * @param CTHRR = object [9,1] in covariance matrix (in m²/s²)
728 */
729 public void setCthrr(final double CTHRR) {
730 refuseFurtherComments();
731 setCovarianceMatrixEntry(8, 0, CTHRR);
732 }
733
734 /**
735 * Get the object [9,2] in covariance matrix (with index starting at 1).
736 * @return the object [9,2] in covariance matrix (in m²/s²)
737 */
738 public double getCthrt() {
739 return covarianceMatrix.getEntry(8, 1);
740 }
741
742 /**
743 * Set the object [9,2] in covariance matrix (with index starting at 1).
744 * @param CTHRT = object [9,2] in covariance matrix (in m²/s²)
745 */
746 public void setCthrt(final double CTHRT) {
747 refuseFurtherComments();
748 setCovarianceMatrixEntry(8, 1, CTHRT);
749 }
750
751 /**
752 * Get the object [9,3] in covariance matrix (with index starting at 1).
753 * @return the object [9,3] in covariance matrix (in m²/s²)
754 */
755 public double getCthrn() {
756 return covarianceMatrix.getEntry(8, 2);
757 }
758
759 /**
760 * Set the object [9,3] in covariance matrix (with index starting at 1).
761 * @param CTHRN = object [9,3] in covariance matrix (in m²/s²)
762 */
763 public void setCthrn(final double CTHRN) {
764 refuseFurtherComments();
765 setCovarianceMatrixEntry(8, 2, CTHRN);
766 }
767
768 /**
769 * Get the object [9,4] in covariance matrix (with index starting at 1).
770 * @return the object [9,4] in covariance matrix (in m²/s³)
771 */
772 public double getCthrrdot() {
773 return covarianceMatrix.getEntry(8, 3);
774 }
775
776 /**
777 * Set the object [9,4] in covariance matrix (with index starting at 1).
778 * @param CTHRRdot = object [9,4] in covariance matrix (in m²/s³)
779 */
780 public void setCthrrdot(final double CTHRRdot) {
781 refuseFurtherComments();
782 setCovarianceMatrixEntry(8, 3, CTHRRdot);
783 }
784
785 /**
786 * Get the object [9,5] in covariance matrix (with index starting at 1).
787 * @return the object [9,5] in covariance matrix (in m²/s³)
788 */
789 public double getCthrtdot() {
790 return covarianceMatrix.getEntry(8, 4);
791 }
792
793 /**
794 * Set the object [9,5] in covariance matrix (with index starting at 1).
795 * @param CTHRTdot = object [9,5] in covariance matrix (in m²/s³)
796 */
797 public void setCthrtdot(final double CTHRTdot) {
798 refuseFurtherComments();
799 setCovarianceMatrixEntry(8, 4, CTHRTdot);
800 }
801
802 /**
803 * Get the object [9,6] in covariance matrix (with index starting at 1).
804 * @return the object [9,6] in covariance matrix (in m²/s³)
805 */
806 public double getCthrndot() {
807 return covarianceMatrix.getEntry(8, 5);
808 }
809
810 /**
811 * Set the object [9,6] in covariance matrix (with index starting at 1).
812 * @param CTHRNdot = object [9,6] in covariance matrix (in m²/s³)
813 */
814 public void setCthrndot(final double CTHRNdot) {
815 refuseFurtherComments();
816 setCovarianceMatrixEntry(8, 5, CTHRNdot);
817 }
818
819 /**
820 * Get the object [9,7] in covariance matrix (with index starting at 1).
821 * @return the object [9,7] in covariance matrix (in m³/(kg.s²))
822 */
823 public double getCthrdrg() {
824 return covarianceMatrix.getEntry(8, 6);
825 }
826
827 /**
828 * Set the object [9,7] in covariance matrix (with index starting at 1).
829 * @param CTHRDRG = object [9,7] in covariance matrix (in m³/(kg.s²))
830 */
831 public void setCthrdrg(final double CTHRDRG) {
832 refuseFurtherComments();
833 setCovarianceMatrixEntry(8, 6, CTHRDRG);
834 }
835
836 /**
837 * Get the object [9,8] in covariance matrix (with index starting at 1).
838 * @return the object [9,8] in covariance matrix (in m³/(kg.s²))
839 */
840 public double getCthrsrp() {
841 return covarianceMatrix.getEntry(8, 7);
842 }
843
844 /**
845 * Set the object [9,8] in covariance matrix (with index starting at 1).
846 * @param CTHRSRP = object [9,8] in covariance matrix (in m³/(kg.s²))
847 */
848 public void setCthrsrp(final double CTHRSRP) {
849 refuseFurtherComments();
850 setCovarianceMatrixEntry(8, 7, CTHRSRP);
851 }
852
853 /**
854 * Get the object [9,9] in covariance matrix (with index starting at 1).
855 * @return the object [9,9] in covariance matrix (in m²/s⁴)
856 */
857 public double getCthrthr() {
858 return covarianceMatrix.getEntry(8, 8);
859 }
860
861 /**
862 * Set the object [9,9] in covariance matrix (with index starting at 1).
863 * @param CTHRTHR = object [9,9] in covariance matrix (in m²/s⁴)
864 */
865 public void setCthrthr(final double CTHRTHR) {
866 refuseFurtherComments();
867 setCovarianceMatrixEntry(8, 8, CTHRTHR);
868 }
869
870 }