00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
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
00061
00063 typedef struct {
00064 #include "ObitCArrayDef.h"
00065 } ObitCArray;
00066
00067
00073 #define ObitCArrayUnref(in) ObitUnref (in)
00074
00080 #define ObitCArrayRef(in) ObitRef (in)
00081
00088 #define ObitCArrayIsA(in) ObitIsA (in, ObitCArrayGetClass())
00089
00090
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
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
00248 typedef struct {
00249 #include "ObitCArrayClassDef.h"
00250 } ObitCArrayClassInfo;
00251
00252 #endif