| [49] | 1 | //#--------------------------------------------------------------------------- | 
|---|
|  | 2 | //# SDMathWrapper.h: Wrapper classes to use CountedPtr | 
|---|
|  | 3 | //#--------------------------------------------------------------------------- | 
|---|
|  | 4 | //# Copyright (C) 2004 | 
|---|
| [125] | 5 | //# ATNF | 
|---|
| [49] | 6 | //# | 
|---|
|  | 7 | //# This program is free software; you can redistribute it and/or modify it | 
|---|
|  | 8 | //# under the terms of the GNU General Public License as published by the Free | 
|---|
|  | 9 | //# Software Foundation; either version 2 of the License, or (at your option) | 
|---|
|  | 10 | //# any later version. | 
|---|
|  | 11 | //# | 
|---|
|  | 12 | //# This program is distributed in the hope that it will be useful, but | 
|---|
|  | 13 | //# WITHOUT ANY WARRANTY; without even the implied warranty of | 
|---|
|  | 14 | //# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General | 
|---|
|  | 15 | //# Public License for more details. | 
|---|
|  | 16 | //# | 
|---|
|  | 17 | //# You should have received a copy of the GNU General Public License along | 
|---|
|  | 18 | //# with this program; if not, write to the Free Software Foundation, Inc., | 
|---|
|  | 19 | //# 675 Massachusetts Ave, Cambridge, MA 02139, USA. | 
|---|
|  | 20 | //# | 
|---|
|  | 21 | //# Correspondence concerning this software should be addressed as follows: | 
|---|
|  | 22 | //#        Internet email: Malte.Marquarding@csiro.au | 
|---|
|  | 23 | //#        Postal address: Malte Marquarding, | 
|---|
|  | 24 | //#                        Australia Telescope National Facility, | 
|---|
|  | 25 | //#                        P.O. Box 76, | 
|---|
|  | 26 | //#                        Epping, NSW, 2121, | 
|---|
|  | 27 | //#                        AUSTRALIA | 
|---|
|  | 28 | //# | 
|---|
|  | 29 | //# $Id: | 
|---|
|  | 30 | //#--------------------------------------------------------------------------- | 
|---|
| [125] | 31 | #ifndef SDMATHWRAPPER_H | 
|---|
|  | 32 | #define SDMATHWRAPPER_H | 
|---|
| [49] | 33 |  | 
|---|
|  | 34 | #include <vector> | 
|---|
|  | 35 | #include <string> | 
|---|
|  | 36 |  | 
|---|
|  | 37 | #include <boost/python/tuple.hpp> | 
|---|
|  | 38 |  | 
|---|
|  | 39 | #include "SDMemTableWrapper.h" | 
|---|
|  | 40 |  | 
|---|
| [83] | 41 | namespace asap { | 
|---|
| [49] | 42 |  | 
|---|
| [69] | 43 | namespace SDMathWrapper { | 
|---|
| [49] | 44 |  | 
|---|
| [151] | 45 | // Quotient | 
|---|
| [49] | 46 | SDMemTableWrapper quotient(const SDMemTableWrapper& on, | 
|---|
| [170] | 47 | const SDMemTableWrapper& off); | 
|---|
| [49] | 48 |  | 
|---|
| [151] | 49 | // Multiply | 
|---|
| [170] | 50 | void scaleInSitu(SDMemTableWrapper& in, float factor, bool doAll); | 
|---|
| [86] | 51 | SDMemTableWrapper scale(const SDMemTableWrapper& in, | 
|---|
| [170] | 52 | float factor, bool all); | 
|---|
| [145] | 53 |  | 
|---|
| [151] | 54 | // Add | 
|---|
| [175] | 55 | void addInSitu(SDMemTableWrapper& in, float offset, bool doAall); | 
|---|
| [170] | 56 | SDMemTableWrapper add(const SDMemTableWrapper& in, float offset, bool all); | 
|---|
| [107] | 57 |  | 
|---|
| [178] | 58 | // Smooth | 
|---|
|  | 59 | void smoothInSitu (SDMemTableWrapper& in, const std::string& kernel, float width, bool doAll); | 
|---|
|  | 60 | SDMemTableWrapper smooth (const SDMemTableWrapper& in, const std::string& kernel, float width, bool doAll); | 
|---|
| [49] | 61 |  | 
|---|
| [151] | 62 | // Bin up | 
|---|
| [169] | 63 | void binInSitu (SDMemTableWrapper& in, int width); | 
|---|
|  | 64 | SDMemTableWrapper bin(const SDMemTableWrapper& in, int width); | 
|---|
| [151] | 65 |  | 
|---|
|  | 66 | // Average in time | 
|---|
| [145] | 67 | SDMemTableWrapper average (boost::python::tuple tpl, | 
|---|
|  | 68 | const std::vector<bool>& mask, | 
|---|
|  | 69 | bool scanAv, const std::string& wt); | 
|---|
| [49] | 70 |  | 
|---|
| [151] | 71 | // Average polarizations | 
|---|
| [169] | 72 | void averagePolInSitu (SDMemTableWrapper& in,  const std::vector<bool>& mask); | 
|---|
|  | 73 | SDMemTableWrapper averagePol (const SDMemTableWrapper& in, const std::vector<bool>& mask); | 
|---|
| [49] | 74 |  | 
|---|
| [151] | 75 | // Statistics | 
|---|
| [131] | 76 | std::vector<float> statistic(const SDMemTableWrapper& in, | 
|---|
| [169] | 77 | const std::vector<bool>& mask, | 
|---|
|  | 78 | const std::string& which); | 
|---|
| [49] | 79 | }; | 
|---|
|  | 80 |  | 
|---|
|  | 81 | } // namespace | 
|---|
|  | 82 | #endif | 
|---|