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

ObitCArray.h

Go to the documentation of this file.
00001 /* $Id: ObitCArray.h,v 1.9 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 OBITCARRAY_H 
00029 #define OBITCARRAY_H 
00030 
00031 #include "Obit.h"
00032 #include "ObitErr.h"
00033 #include "ObitThread.h"
00034 #include "ObitInfoList.h"
00035 #include "ObitFArray.h"
00036 
00037 /*-------- Obit: Software for the recently deceased ------------------*/
00061 /*--------------Class definitions-------------------------------------*/
00063 typedef struct {
00064 #include "ObitCArrayDef.h"   /* this class definition */
00065 } ObitCArray;
00066 
00067 /*----------------- Macroes ---------------------------*/
00073 #define ObitCArrayUnref(in) ObitUnref (in)
00074 
00080 #define ObitCArrayRef(in) ObitRef (in)
00081 
00088 #define ObitCArrayIsA(in) ObitIsA (in, ObitCArrayGetClass())
00089 
00090 /*---------------Public functions---------------------------*/
00092 void ObitCArrayClassInit (void);
00093 
00095 ObitCArray* newObitCArray (gchar* name);
00096 
00098 ObitCArray* ObitCArrayCreate (gchar* name, glong ndim, glong *naxis);
00100 typedef void (*ObitCArrayCreateFP) (gchar* name, glong ndim, glong *naxis);
00101 
00103 gconstpointer ObitCArrayGetClass (void);
00104 
00106 ObitCArray* ObitCArrayCopy  (ObitCArray *in, ObitCArray *out, ObitErr *err);
00107 
00109 gboolean ObitCArrayIsCompatable  (ObitCArray *in1, ObitCArray *in2);
00110 typedef gboolean (*ObitCArrayIsCompatableFP) (ObitCArray *in1, ObitCArray *in2);
00111 
00113 ObitCArray* ObitCArrayRealloc (ObitCArray* in, glong ndim, glong *naxis);
00114 typedef void (*ObitCArrayReallocFP) (ObitCArray* in, glong ndim, glong *naxis);
00115 
00117 gfloat* ObitCArrayIndex (ObitCArray* in, glong *pos);
00118 typedef gfloat* (*ObitCArrayIndexFP) (ObitCArray* in, glong *pos);
00119 
00121 gfloat ObitCArrayMaxAbs (ObitCArray* in, glong *pos);
00122 typedef gfloat (*ObitCArrayMaxAbsFP) (ObitCArray* in, glong *pos);
00123 
00125 gfloat ObitCArrayMin (ObitCArray* in, glong *pos);
00126 typedef gfloat (*ObitCArrayMinFP) (ObitCArray* in, glong *pos);
00127 
00129 void ObitCArrayNeg (ObitCArray* in);
00130 typedef void (*ObitCArrayNegFP) (ObitCArray* in);
00131 
00133 void ObitCArrayConjg (ObitCArray* in);
00134 typedef void (*ObitCArrayConjgFP) (ObitCArray* in);
00135 
00137 void ObitCArrayFill (ObitCArray* in, gfloat cmpx[2]);
00138 typedef void (*ObitCArrayFillFP) (ObitCArray* in, gfloat cmpx[2]);
00139 
00141 void ObitCArraySAdd (ObitCArray* in, gfloat scalar);
00142 typedef void (*ObitCArraySAddFP) (ObitCArray* in, gfloat scalar);
00143 
00145 void ObitCArraySMul (ObitCArray* in, gfloat scalar);
00146 typedef void (*ObitCArraySMulFP) (ObitCArray* in, gfloat scalar);
00147 
00149 void ObitCArrayCSAdd (ObitCArray* in, gfloat scalar[2]);
00150 typedef void (*ObitCArrayCSAddFP) (ObitCArray* in, gfloat scalar[2]);
00151 
00153 void ObitCArrayCSMul (ObitCArray* in, gfloat scalar[2]);
00154 typedef void (*ObitCArrayCSMulFP) (ObitCArray* in, gfloat scalar[2]);
00155 
00157 void ObitCArrayAdd (ObitCArray* in1, ObitCArray* in2, ObitCArray* out);
00158 typedef void (*ObitCArrayAddFP) (ObitCArray* in1, ObitCArray* in2, 
00159                                   ObitCArray* out);
00160 
00162 void ObitCArraySub (ObitCArray* in1, ObitCArray* in2, ObitCArray* out);
00163 typedef void (*ObitCArraySubFP) (ObitCArray* in1, ObitCArray* in2, 
00164                                   ObitCArray* out);
00165 
00167 void ObitCArrayMul (ObitCArray* in1, ObitCArray* in2, ObitCArray* out);
00168 typedef void (*ObitCArrayMulFP) (ObitCArray* in1, ObitCArray* in2, 
00169                                   ObitCArray* out);
00170 
00172 void ObitCArrayDiv (ObitCArray* in1, ObitCArray* in2, ObitCArray* out);
00173 typedef void (*ObitCArrayDivFP) (ObitCArray* in1, ObitCArray* in2, 
00174                                   ObitCArray* out);
00175 
00176 /* CArray - FArray functions */
00177 
00179 ObitFArray* ObitCArrayMakeF  (ObitCArray *Cin);
00180 typedef ObitFArray* (*ObitCArrayMakeFFP) (ObitCArray *Cin);
00181 
00183 ObitCArray* ObitCArrayMakeC  (ObitFArray *Fin);
00184 typedef ObitCArray* (*ObitCArrayMakeCFP) (ObitFArray *Fin);
00185 
00187 gboolean ObitCArrayIsFCompatable  (ObitCArray *Cin, ObitFArray *Fin);
00188 typedef gboolean (*ObitCArrayIsFCompatableFP) (ObitCArray *Cin, ObitFArray *Fin);
00189 
00191 void ObitCArrayFMul (ObitCArray* Cin, ObitFArray* Fin, ObitCArray* out);
00192 typedef void (*ObitCArrayFMulFP) (ObitCArray* Cin, ObitFArray* Fin, 
00193                                   ObitCArray* out);
00194 
00196 void ObitCArrayFDiv (ObitCArray* Cin, ObitFArray* Fin, ObitCArray* out);
00197 typedef void (*ObitCArrayFDivFP) (ObitCArray* Cin, ObitFArray* Fin, 
00198                                   ObitCArray* out);
00199 
00201 void ObitCArrayFRot (ObitCArray* Cin, ObitFArray* Fin, ObitCArray* out);
00202 typedef void (*ObitCArrayFRotFP) (ObitCArray* Cin, ObitFArray* Fin, 
00203                                   ObitCArray* out);
00204 
00206 void ObitCArrayFAdd (ObitCArray* Cin, ObitFArray* Fin, ObitCArray* out);
00207 typedef void (*ObitCArrayFAddFP) (ObitCArray* Cin, ObitFArray* Fin, 
00208                                   ObitCArray* out);
00209 
00211 void ObitCArrayComplex (ObitFArray* Fin1, ObitFArray* Fin2, ObitCArray* out);
00212 typedef void (*ObitCArrayComplexFP) (ObitFArray* Fin1, ObitFArray* Fin2, 
00213                                       ObitCArray* out);
00214 
00216 void ObitCArrayReal (ObitCArray* in, ObitFArray* out);
00217 typedef void (*ObitCArrayRealFP) (ObitCArray* in, ObitCArray* out);
00218 
00220 void ObitCArrayImag (ObitCArray* in, ObitFArray* out);
00221 typedef void (*ObitCArrayImagFP) (ObitCArray* in, ObitCArray* out);
00222 
00224 void ObitCArrayAmp (ObitCArray* in, ObitFArray* out);
00225 typedef void (*ObitCArrayAmpFP) (ObitCArray* in, ObitCArray* out);
00226 
00228 void ObitCArrayPhase (ObitCArray* in, ObitFArray* out);
00229 typedef void (*ObitCArrayPhaseFP) (ObitCArray* in, ObitCArray* out);
00230 
00232 void ObitCArray2DCenter (ObitCArray* in);
00233 typedef void (*ObitCArray2DCenterFP) (ObitCArray* in);
00234 
00235 
00237 ObitCArray* ObitCArrayAddConjg (ObitCArray* in, glong numConjCol);
00238 typedef ObitCArray* (*ObitCArrayAddConjgFP) (ObitCArray* in, 
00239                                              glong numConjCol);
00240 
00241 
00242 /*----------- ClassInfo Structure -----------------------------------*/
00248 typedef struct  {
00249 #include "ObitCArrayClassDef.h"
00250 } ObitCArrayClassInfo; 
00251 
00252 #endif /* OBITCARRAY_H */ 

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