This file is indexed.

/usr/include/casacore/measures/Measures/Aberration.h is in casacore-dev 2.2.0-2.

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
174
175
176
177
178
179
180
181
182
183
//# Aberration.h: Aberration class
//# Copyright (C) 1995,1996,1997,1998
//# Associated Universities, Inc. Washington DC, USA.
//#
//# This library is free software; you can redistribute it and/or modify it
//# under the terms of the GNU Library General Public License as published by
//# the Free Software Foundation; either version 2 of the License, or (at your
//# option) any later version.
//#
//# This library 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 Library General Public
//# License for more details.
//#
//# You should have received a copy of the GNU Library General Public License
//# along with this library; if not, write to the Free Software Foundation,
//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
//#
//# Correspondence concerning AIPS++ should be addressed as follows:
//#        Internet email: aips2-request@nrao.edu.
//#        Postal address: AIPS++ Project Office
//#                        National Radio Astronomy Observatory
//#                        520 Edgemont Road
//#                        Charlottesville, VA 22903-2475 USA
//#
//#
//# $Id$

#ifndef MEASURES_ABERRATION_H
#define MEASURES_ABERRATION_H

//# Includes
#include <casacore/casa/aips.h>
#include <casacore/casa/Quanta/MVPosition.h>


namespace casacore { //# NAMESPACE CASACORE - BEGIN

// <summary>
// Aberration class and calculations
// </summary>

// <use visibility=export>

// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="tMeasMath" demos="">
// </reviewed>

// <prerequisite>
//   <li> <linkto class=Measure>Measure</linkto> class, 
//		especially <linkto class=MEpoch>MEpoch</linkto>
//   <li> <linkto class=MeasData>MeasData</linkto> class for constants
// </prerequisite>
//
// <etymology>
// Aberration
// </etymology>
//
// <synopsis>
// Aberration forms the class for Aberration calculations. It is a simple
// container with the selected method, and the mean epoch.<br>
// The method is selected from one of the following:
// <ul>
//   <li> Aberration::STANDARD   (at 1995/09/04 the IAU1980 definition)
//   <li> Aberration::NONE
//   <li> Aberration::B1950
// </ul>
// Epochs can be specified as the MJD (with defined constants MeasData::MJD2000
// and MeasData::MJDB1950 or the actual MJD),
// leading to the following constructors:
// <ul>
//   <li> Aberration() default; assuming JD2000, IAU1980
//   <li> Aberration(method) assuming the correct default epoch of
//		JD2000 or B1950
//   <li> Aberration(method,epoch) with epoch Double(MJD).
// </ul>
// Actual Aberration for a certain Epoch is calculated by the () operator
// as Aberration(epoch), with epoch Double MJD, values returned as an
// MVPosition.<br>
// The derivative (d<sup>-1</sup>) can be obtained as well by
// derivative(epoch).<br>
// The following details can be set with the 
// <linkto class=Aipsrc>Aipsrc</linkto> mechanism:
// <ul>
//  <li> measures.aberration.d_interval: approximation interval as time 
//	(fraction of days is default unit) over which linear approximation
//	is used
//  <li> measures.aberration.b_usejpl: use the JPL database values for IAU1980.
//	Else analytical expression, relative error about 10<sup>-9</sup>
//	Note that the JPL database to be used can be set with 
//		measures.jpl.ephemeris (at the moment of writing DE200 (default),
//		or DE405). If using the JPL database, the d_interval (and the
//		output of derivative()) are irrelevant.
// </ul>
// </synopsis>
//
// <example>
// </example>
//
// <motivation>
// To calculate the Aberration angles. An alternate route could have been
// a global function, but having a simple container allows
// caching of some calculations for speed.<br>
// Using MJD (JD-2400000.5) rather than JD is for precision reasons.
// </motivation>
//
// <todo asof="1997/12/02">
// </todo>

class Aberration
{
public:
//# Constants
// Interval to be used for linear approximation (in days)
    static const Double INTV;

//# Enumerations
// Types of known Aberration calculations (at 1995/09/04 STANDARD == IAU1980)
    enum AberrationTypes {STANDARD,NONE,B1950};

//# Constructors
// Default constructor, generates default J2000 Aberration identification
    Aberration();
// Copy constructor
    Aberration(const Aberration &other);
// Constructor with type
    Aberration(AberrationTypes type);
// Copy assignment
    Aberration &operator=(const Aberration &other);

//# Destructor
    ~Aberration();

//# Operators
// Operator () calculates the Aberration direction cosine vector
    const MVPosition &operator()(Double epoch);

//# General Member Functions
// Return derivative of Aberration (d<sup>-1</sup>) w.r.t. time
    const MVPosition &derivative (Double epoch);

// Re-initialise Aberration object
// <group>
    void init();
    void init(AberrationTypes type);
// </group>

// Refresh calculations
    void refresh();

private:
//# Data menbers
// Method to be used
    AberrationTypes method;
// Check epoch for linear approximation
    Double checkEpoch;
// Cached calculated angles
    Double aval[3];
// Cached derivatives
    Double dval[3];
// To be able to use referenced results in simple calculations, a circular
// result buffer is used.
// Current buffer pointer.
    Int lres;
// Last calculation
    MVPosition result[4];
// Interpolation interval
    static uInt interval_reg;
// JPL use
    static uInt usejpl_reg;

//# Member functions
// Copy
    void copy(const Aberration &other);
// Fill an empty copy
    void fill();
// Calculate Aberration angles for time t
    void calcAber(Double t);
};


} //# NAMESPACE CASACORE - END

#endif