source: trunk/external-alma/components/SpectralComponents/PowerLogPolynomialSpectralElement.h @ 2980

Last change on this file since 2980 was 2980, checked in by Malte Marquarding, 10 years ago

Add a copy of casacore/components/SpectralComponents to external-alma directory to prepare for its removal from casacore-trunk. DOn;t activate in SConscript yet.

File size: 3.2 KB
Line 
1//# SpectralElement.h: Describes (a set of related) spectral lines
2//# Copyright (C) 2001,2003,2004
3//# Associated Universities, Inc. Washington DC, USA.
4//#
5//# This library is free software; you can redistribute it and/or modify it
6//# under the terms of the GNU Library General Public License as published by
7//# the Free Software Foundation; either version 2 of the License, or (at your
8//# option) any later version.
9//#
10//# This library is distributed in the hope that it will be useful, but WITHOUT
11//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12//# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
13//# License for more details.
14//#
15//# You should have received a copy of the GNU Library General Public License
16//# along with this library; if not, write to the Free Software Foundation,
17//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18//#
19//# Correspondence concerning AIPS++ should be addressed as follows:
20//#        Internet email: aips2-request@nrao.edu.
21//#        Postal address: AIPS++ Project Office
22//#                        National Radio Astronomy Observatory
23//#                        520 Edgemont Road
24//#                        Charlottesville, VA 22903-2475 USA
25//#
26//#
27//# $Id: SpectralElement.h 20652 2009-07-06 05:04:32Z Malte.Marquarding $
28
29#ifndef COMPONENTS_POWERLOGPOLYNOMIALSPECTRALELEMENT_H
30#define COMPONENTS_POWERLOGPOLYNOMIALSPECTRALELEMENT_H
31
32#include <components/SpectralComponents/CompiledSpectralElement.h>
33
34namespace casa { //# NAMESPACE CASA - BEGIN
35
36// <summary>
37// Describes the function most often used for determining spectral index plus higher order terms:
38// y = c_0 * x**( c_1 + c_2*ln(x) + c_3*ln(x)**2 + ... )
39// where c_1 is the traditional spectral index (alpha).
40// </summary>
41
42// <use visibility=export>
43
44// <reviewed reviewer="" date="yyyy/mm/dd" tests="tSpectralFit" demos="">
45// </reviewed>
46
47// <prerequisite>
48//   <li> <linkto class=SpectralElement>SpectralElement</linkto> module
49// </prerequisite>
50//
51// <etymology>
52// From power law, logarithm, and polynomial and spectral line and element
53// </etymology>
54//
55// <synopsis>
56// Describes a function that can be used to fit for spectral index and higher order terms
57
58// </synopsis>
59//
60// <example>
61// </example>
62//
63// <motivation>
64// To have a spectral element representing a spectral index function.
65// </motivation>
66
67
68class PowerLogPolynomialSpectralElement: public SpectralElement {
69public:
70
71        /*
72        // Constructor. The n coefficients c_i to be solved for are
73        // c_0 * nu**(c_1 + c_2*log(x) + c_3*log(x)**2 + ... + c_(n-1)*log(x)**(n - 2))
74        explicit PowerLogPolynomialSpectralElement(uInt n);
75*/
76        // Construct with the given parameters. See above constructor for order in which the parameters should
77        // be supplied.
78        PowerLogPolynomialSpectralElement(const Vector<Double> &param);
79
80        // Copy constructor (deep copy)
81        PowerLogPolynomialSpectralElement(const PowerLogPolynomialSpectralElement &other);
82
83        ~PowerLogPolynomialSpectralElement();
84
85        PowerLogPolynomialSpectralElement &operator=(
86                const PowerLogPolynomialSpectralElement& other
87        );
88
89        SpectralElement* clone() const;
90/*
91private:
92        void _makeFunction();
93*/
94};
95
96ostream &operator<<(ostream& os, const PowerLogPolynomialSpectralElement& elem);
97
98
99} //# NAMESPACE CASA - END
100
101#endif
102
Note: See TracBrowser for help on using the repository browser.