Main Page | Class List | Directories | File List | Class Members | File Members

ObitFArray.h

Go to the documentation of this file.
00001 /* $Id: ObitFArray.h,v 1.17 2007/08/31 17:24:48 bcotton Exp $   */
00002 /*--------------------------------------------------------------------*/
00003 /*;  Copyright (C) 2003-2007                                          */
00004 /*;  Associated Universities, Inc. Washington DC, USA.                */
00005 /*;                                                                   */
00006 /*;  This program is free software; you can redistribute it and/or    */
00007 /*;  modify it under the terms of the GNU General Public License as   */
00008 /*;  published by the Free Software Foundation; either version 2 of   */
00009 /*;  the License, or (at your option) any later version.              */
00010 /*;                                                                   */
00011 /*;  This program is distributed in the hope that it will be useful,  */
00012 /*;  but WITHOUT ANY WARRANTY; without even the implied warranty of   */
00013 /*;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    */
00014 /*;  GNU General Public License for more details.                     */
00015 /*;                                                                   */
00016 /*;  You should have received a copy of the GNU General Public        */
00017 /*;  License along with this program; if not, write to the Free       */
00018 /*;  Software Foundation, Inc., 675 Massachusetts Ave, Cambridge,     */
00019 /*;  MA 02139, USA.                                                   */
00020 /*;                                                                   */
00021 /*;Correspondence about this software should be addressed as follows: */
00022 /*;         Internet email: bcotton@nrao.edu.                         */
00023 /*;         Postal address: William Cotton                            */
00024 /*;                         National Radio Astronomy Observatory      */
00025 /*;                         520 Edgemont Road                         */
00026 /*;                         Charlottesville, VA 22903-2475 USA        */
00027 /*--------------------------------------------------------------------*/
00028 #ifndef OBITFARRAY_H 
00029 #define OBITFARRAY_H 
00030 
00031 #include "Obit.h"
00032 #include "ObitErr.h"
00033 #include "ObitInfoList.h"
00034 #include "ObitThread.h"
00035 
00036 /*-------- Obit: Software for the recently deceased ------------------*/
00064 /*--------------Class definitions-------------------------------------*/
00066 typedef struct {
00067 #include "ObitFArrayDef.h"   /* this class definition */
00068 } ObitFArray;
00069 
00070 /*----------------- Macroes ---------------------------*/
00076 #define ObitFArrayUnref(in) ObitUnref (in)
00077 
00083 #define ObitFArrayRef(in) ObitRef (in)
00084 
00091 #define ObitFArrayIsA(in) ObitIsA (in, ObitFArrayGetClass())
00092 
00094 #ifndef MAXFARRAYDIM
00095 #define MAXFARRAYDIM 10
00096 #endif
00097 
00098 /*---------------Public functions---------------------------*/
00100 void ObitFArrayClassInit (void);
00101 
00103 ObitFArray* newObitFArray (gchar* name);
00104 
00106 ObitFArray* ObitFArrayCreate (gchar* name, glong ndim, glong *naxis);
00108 typedef void (*ObitFArrayCreateFP) (gchar* name, glong ndim, glong *naxis);
00109 
00111 gconstpointer ObitFArrayGetClass (void);
00112 
00114 ObitFArray* ObitFArrayCopy  (ObitFArray *in, ObitFArray *out, ObitErr *err);
00115 
00117 void ObitFArrayClone (ObitFArray *in, ObitFArray *out, ObitErr *err);
00118 
00120 ObitFArray* ObitFArraySubArr  (ObitFArray *in, glong *blc, glong *trc, 
00121                                ObitErr *err);
00122 typedef ObitFArray* (*ObitFArraySubArrFP) (ObitFArray *in, glong *blc, glong *trc, 
00123                                            ObitErr *err);
00124 
00126 ObitFArray* ObitFArrayTranspose  (ObitFArray *in, glong *order, ObitErr *err);
00127 typedef ObitFArray* (*ObitFArrayTransposeFP) (ObitFArray *in, glong *order, 
00128                                               ObitErr *err);
00129 
00131 gboolean ObitFArrayIsCompatable  (ObitFArray *in1, ObitFArray *in2);
00132 typedef gboolean (*ObitFArrayIsCompatableFP) (ObitFArray *in1, ObitFArray *in2);
00133 
00135 ObitFArray* ObitFArrayRealloc (ObitFArray* in, glong ndim, glong *naxis);
00136 typedef void (*ObitFArrayReallocFP) (ObitFArray* in, glong ndim, glong *naxis);
00137 
00139 gfloat* ObitFArrayIndex (ObitFArray* in, glong *pos);
00140 typedef gfloat* (*ObitFArrayIndexFP) (ObitFArray* in, glong *pos);
00141 
00143 gfloat ObitFArrayMax (ObitFArray* in, glong *pos);
00144 typedef gfloat (*ObitFArrayMaxFP) (ObitFArray* in, glong *pos);
00145 
00147 gfloat ObitFArrayMaxAbs (ObitFArray* in, glong *pos);
00148 typedef gfloat (*ObitFArrayMaxAbsFP) (ObitFArray* in, glong *pos);
00149 
00151 gfloat ObitFArrayMin (ObitFArray* in, glong *pos);
00152 typedef gfloat (*ObitFArrayMinFP) (ObitFArray* in, glong *pos);
00153 
00155 void ObitFArrayDeblank (ObitFArray* in, gfloat scalar);
00156 typedef void (*ObitFArrayDeblankFP) (ObitFArray* in, gfloat scalar);
00157 
00159 gfloat ObitFArrayRMS (ObitFArray* in);
00160 typedef gfloat (*ObitFArrayRMSFP) (ObitFArray* in);
00161 
00163 gfloat ObitFArrayRawRMS (ObitFArray* in);
00164 typedef gfloat (*ObitFArrayRawRMSFP) (ObitFArray* in);
00165 
00167 gfloat ObitFArrayRMS0 (ObitFArray* in);
00168 typedef gfloat (*ObitFArrayRMS0FP) (ObitFArray* in);
00169 
00171 gfloat ObitFArrayRMSQuant (ObitFArray* in);
00172 typedef gfloat (*ObitFArrayRMSQuantFP) (ObitFArray* in);
00173 
00175 void ObitFArrayQuant (ObitFArray* in, gfloat *quant, gfloat *zero);
00176 typedef void (*ObitFArrayQuantFP) (ObitFArray* in, gfloat *quant, gfloat *zero);
00177 
00179 gfloat ObitFArrayMode (ObitFArray* in);
00180 typedef gfloat (*ObitFArrayModeFP) (ObitFArray* in);
00181 
00183 gfloat ObitFArrayMean (ObitFArray* in);
00184 typedef gfloat (*ObitFArrayMeanFP) (ObitFArray* in);
00185 
00187 void ObitFArrayFill (ObitFArray* in, gfloat scalar);
00188 typedef void (*ObitFArrayFillFP) (ObitFArray* in, gfloat scalar);
00189 
00191 void ObitFArrayNeg (ObitFArray* in);
00192 typedef void (*ObitFArrayNegFP) (ObitFArray* in);
00193 
00195 void ObitFArraySin (ObitFArray* in);
00196 typedef void (*ObitFArraySinFP) (ObitFArray* in);
00197 
00199 void ObitFArrayCos (ObitFArray* in);
00200 typedef void (*ObitFArrayCosFP) (ObitFArray* in);
00201 
00203 gfloat ObitFArraySum (ObitFArray* in);
00204 typedef gfloat (*ObitFArraySumFP) (ObitFArray* in);
00205 
00207 glong ObitFArrayCount (ObitFArray* in);
00208 typedef glong (*ObitFArrayCountFP) (ObitFArray* in);
00209 
00211 void ObitFArraySAdd (ObitFArray* in, gfloat scalar);
00212 typedef void (*ObitFArraySAddFP) (ObitFArray* in, gfloat scalar);
00213 
00215 void ObitFArraySMul (ObitFArray* in, gfloat scalar);
00216 typedef void (*ObitFArraySMulFP) (ObitFArray* in, gfloat scalar);
00217 
00219 void ObitFArraySDiv (ObitFArray* in, gfloat scalar);
00220 typedef void (*ObitFArraySDivFP) (ObitFArray* in, gfloat scalar);
00221 
00223 void ObitFArrayClip (ObitFArray* in, gfloat minVal,gfloat maxVal, gfloat newVal);
00224 typedef void (*ObitFArrayClipFP) (ObitFArray* in, gfloat minVal, gfloat maxVal, 
00225                                   gfloat newVal);
00226 
00228 void ObitFArrayInClip (ObitFArray* in, gfloat minVal,gfloat maxVal, gfloat newVal);
00229 typedef void (*ObitFArrayInClipFP) (ObitFArray* in, gfloat minVal, gfloat maxVal, 
00230                                     gfloat newVal);
00231 
00233 void ObitFArrayBlank (ObitFArray* in1, ObitFArray* in2, ObitFArray* out);
00234 typedef void (*ObitFArrayBlankFP) (ObitFArray* in1, ObitFArray* in2, 
00235                                   ObitFArray* out);
00236 
00238 void ObitFArrayMaxArr (ObitFArray* in1, ObitFArray* in2, ObitFArray* out);
00239 typedef void (*ObitFArrayMaxArrFP) (ObitFArray* in1, ObitFArray* in2, 
00240                                     ObitFArray* out);
00241 
00243 void ObitFArrayMinArr (ObitFArray* in1, ObitFArray* in2, ObitFArray* out);
00244 typedef void (*ObitFArrayMinArrFP) (ObitFArray* in1, ObitFArray* in2, 
00245                                     ObitFArray* out);
00246 
00248 void ObitFArraySumArr (ObitFArray* in1, ObitFArray* in2, ObitFArray* out);
00249 typedef void (*ObitFArraySumArrFP) (ObitFArray* in1, ObitFArray* in2, 
00250                                     ObitFArray* out);
00251 
00253 void ObitFArrayAvgArr (ObitFArray* in1, ObitFArray* in2, ObitFArray* out);
00254 typedef void (*ObitFArrayAvgArrFP) (ObitFArray* in1, ObitFArray* in2, 
00255                                     ObitFArray* out);
00256 
00258 void ObitFArrayAdd (ObitFArray* in1, ObitFArray* in2, ObitFArray* out);
00259 typedef void (*ObitFArrayAddFP) (ObitFArray* in1, ObitFArray* in2, 
00260                                   ObitFArray* out);
00261 
00263 void ObitFArraySub (ObitFArray* in1, ObitFArray* in2, ObitFArray* out);
00264 typedef void (*ObitFArraySubFP) (ObitFArray* in1, ObitFArray* in2, 
00265                                   ObitFArray* out);
00266 
00268 void ObitFArrayMul (ObitFArray* in1, ObitFArray* in2, ObitFArray* out);
00269 typedef void (*ObitFArrayMulFP) (ObitFArray* in1, ObitFArray* in2, 
00270                                   ObitFArray* out);
00271 
00273 void ObitFArrayDiv (ObitFArray* in1, ObitFArray* in2, ObitFArray* out);
00274 typedef void (*ObitFArrayDivFP) (ObitFArray* in1, ObitFArray* in2, 
00275                                   ObitFArray* out);
00276 
00278 void ObitFArrayDivClip (ObitFArray* in1, ObitFArray* in2, gfloat minVal, ObitFArray* out);
00279 typedef void (*ObitFArrayDivClipFP) (ObitFArray* in1, ObitFArray* in2, 
00280                                      gfloat minVal, ObitFArray* out);
00281 
00283 gfloat ObitFArrayDot (ObitFArray* in1, ObitFArray* in2);
00284 typedef gfloat (*ObitFArrayDotFP) (ObitFArray* in1, ObitFArray* in2);
00285 
00287 void ObitFArrayMulColRow (ObitFArray* in, ObitFArray* row, ObitFArray* col,
00288                           ObitFArray* out);
00289 typedef void (*ObitFArrayMulColRowFP) (ObitFArray* in, ObitFArray* row, 
00290                                        ObitFArray* col, ObitFArray* out);
00291 
00293 void ObitFArray1DCenter (ObitFArray* in);
00294 typedef void (*ObitFArray1DCenterFP) (ObitFArray* in);
00295 
00297 void ObitFArray2DCenter (ObitFArray* in);
00298 typedef void (*ObitFArray2DCenterFP) (ObitFArray* in);
00299 
00301 void ObitFArray2DSymInv (ObitFArray* in, gint *ierr);
00302 typedef void (*ObitFArray2DSymInvFP) (ObitFArray* in, gint *ierr);
00303 
00305 void ObitFArray2DCGauss (ObitFArray* in, glong Cen[2], gfloat FWHM);
00306 typedef void (*ObitFArray2DCGaussFP) (ObitFArray* in, glong Cen[2], gfloat FWHM);
00307 
00309 void ObitFArray2DEGauss (ObitFArray* in, gfloat amp, gfloat Cen[2], gfloat GauMod[3]);
00310 typedef void (*ObitFArray2DEGaussFP) (ObitFArray* in, gfloat amp, gfloat Cen[2], 
00311                                       gfloat GauMod[3] );
00312 
00314 void ObitFArrayShiftAdd (ObitFArray* in1, glong *pos1, 
00315                          ObitFArray* in2, glong *pos2, 
00316                          gfloat scalar, ObitFArray* out);
00317 typedef void 
00318 (*ObitFArrayShiftAddFP) (ObitFArray* in1, glong *pos1, 
00319                          ObitFArray* in2, glong *pos2, 
00320                          gfloat scalar, ObitFArray* out);
00321 
00323 void  ObitFArrayPad (ObitFArray* in, ObitFArray* out, gfloat factor);
00324 typedef void (*ObitFArrayPadFP) (ObitFArray* in, ObitFArray* out, 
00325                                  gfloat factor);
00326 
00328 void  ObitFArrayConvGaus (ObitFArray* in, ObitFArray* list, glong ncomp, 
00329                           gfloat gauss[3]);
00330 typedef void (*ObitFArrayConvGausFP) (ObitFArray* in, ObitFArray* list, 
00331                                       glong ncomp, gfloat gauss[3]);
00332 
00334 void  ObitFArraySelInc (ObitFArray* in, ObitFArray* out, glong *blc, glong *trc, 
00335                         glong* inc, ObitErr *err);
00336 typedef void (*ObitFArraySelIncFP) (ObitFArray* in, ObitFArray* out, 
00337                                     glong *blc, glong *trc, glong* inc, ObitErr *err);
00338 
00339 /*----------- ClassInfo Structure -----------------------------------*/
00345 typedef struct  {
00346 #include "ObitFArrayClassDef.h"
00347 } ObitFArrayClassInfo; 
00348 
00349 #endif /* OBITFARRAY_H */ 

Generated on Fri Aug 31 22:13:04 2007 for Obit by  doxygen 1.3.9.1