MAOS
Multithreaded Adaptive Optics Simulator
type.h File Reference

Data Structures

struct  smat
 
struct  zmat
 
struct  dmat
 
struct  cmat
 
struct  lmat
 
struct  imat
 
struct  ssp
 
struct  zsp
 
struct  dsp
 
struct  csp
 
struct  map_t
 
struct  rmap_t
 
struct  locstatcol_t
 
struct  locstat_t
 
struct  loc_t
 
struct  pts_t
 
struct  cell
 
struct  ccell
 
struct  zcell
 
struct  dcell
 
struct  scell
 
struct  lcell
 
struct  dspcell
 
struct  sspcell
 
struct  cspcell
 
struct  zspcell
 
struct  cccell
 
struct  zccell
 
struct  dccell
 
struct  sccell
 
struct  lccell
 
struct  ccccell
 
struct  zcccell
 
struct  dcccell
 
struct  scccell
 
struct  lcccell
 
struct  mapcell
 
struct  rmapcell
 
struct  loccell
 
struct  mapccell
 
struct  rmapccell
 
struct  locccell
 
union  map_t.__unnamed__
 
struct  map_t.__unnamed__.__unnamed__
 
union  rmap_t.__unnamed__
 
struct  rmap_t.__unnamed__.__unnamed__
 
union  loc_t.__unnamed__
 
struct  loc_t.__unnamed__.__unnamed__
 
struct  loc_t.__unnamed__
 
union  pts_t.__unnamed__
 
struct  pts_t.__unnamed__.__unnamed__
 
union  pts_t.__unnamed__.__unnamed__.__unnamed__
 

Macros

#define ARR(T)
 
#define CELLDEF(T, S)
 
#define MATARR(T, S)
 
#define MATDEF(T, S)   typedef MATARR(T,S) S
 
#define SPMATDEF(T, S)
 
#define reshape(in, nx_, ny_)
 
#define types_anyarray(T, S)
 
#define def_anyarray(T, S, C)
 
#define index_1d(i, nx, ny)   (i)
 
#define index_2d(ix, iy, nx, ny)   ((ix)+(iy)*(nx))
 
#define index_col(iy, nx, ny)   ((iy)*(nx))
 
#define P0(A)   (A)->p
 
#define P1(A, i)   (A)->p[index_1d((i), (A)->nx, (A)->ny)]
 
#define P2(A, ix, iy)   (A)->p[index_2d((ix), (iy), (A)->nx, (A)->ny)]
 
#define P3(Ac, icx, ix, iy)   P2(P1(Ac,icx),ix,iy)
 
#define P4(Ac, icx, icy, ix, iy)   P2(P2(Ac,icx,icy),ix,iy)
 
#define P_GET5(_0, _1, _2, _3, _4, _5, NAME, ...)   NAME
 
#define P(...)   P_GET5(_0,__VA_ARGS__,P4,P3,P2,P1,P0)(__VA_ARGS__)
 
#define PCOL(A, iy)   ((A)->p+index_col((iy), (A)->nx, (A)->ny))
 
#define P_GET3(_0, _1, _2, _3, NAME, ...)   NAME
 
#define PR1(A, ix)   P1((A), (((A)->nx==1 && (A)->ny==1)?0:ix))
 
#define PR2(A, ix, iy)   P2((A), ((A)->nx==1?0:ix), ((A)->ny==1?0:iy))
 
#define PR(...)   P_GET3(_0,__VA_ARGS__,PR2,PR1,P0)(__VA_ARGS__)
 
#define PCOLR(A, iy)   PCOL((A),((A)->ny==1?0:iy))
 
#define PN0(A)   ((A)?((A)->nx*(A)->ny):0)
 
#define NX0(A)   ((A)?(A)->nx:0)
 
#define NY0(A)   ((A)?(A)->ny:0)
 
#define PN1(A, i)   PN0(P1(A,i))
 
#define PN2(A, ix, iy)   PN0(P2(A,ix,iy))
 
#define PN(...)   P_GET3(_0,__VA_ARGS__,PN2,PN1,PN0)(__VA_ARGS__)
 
#define NX1(A, i)   NX0(P1(A,i))
 
#define NX2(A, ix, iy)   NX0(P2(A,ix,iy))
 
#define NX(...)   P_GET3(_0,__VA_ARGS__,NX2,NX1,NX0)(__VA_ARGS__)
 
#define NY1(A, i)   NY0(P1(A,i))
 
#define NY2(A, ix, iy)   NY0(P2(A,ix,iy))
 
#define NY(...)   P_GET3(_0,__VA_ARGS__,NY2,NY1,NY0)(__VA_ARGS__)
 
#define NE0(A)   ((A) && (A)->nx && (A)->ny)
 
#define NE1(A, i)   ((A) && NE0(P(A,i)))
 
#define NE2(A, ix, iy)   ((A) && NE0(P(A,ix,iy)))
 
#define NE(...)   P_GET3(_0,__VA_ARGS__,NE2,NE1,NE0)(__VA_ARGS__)
 

Enumerations

enum  CEMBED {
  C_FULL, C_ABS2, C_REAL, C_ABS,
  C_LITERAL
}
 

Functions

union __attribute__ ((__transparent_union__))
 

Detailed Description

Defines the math data types like dmat, cmat, dcell, ccell, dsp, csp data types.

Don't use ulong for dimensions because subtracting a bigger ulong from a smaller ulong overflows.

Remember to update interface.py after updating the structs below.


Data Structure Documentation

◆ smat

struct smat
+ Collaboration diagram for smat:
Data Fields
M_ID id

to identify the array type.

float *__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

mem_t * mem

Memory management

async_t * async

async io

◆ zmat

struct zmat
+ Collaboration diagram for zmat:
Data Fields
M_ID id

to identify the array type.

fcomplex *__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

mem_t * mem

Memory management

async_t * async

async io

◆ dmat

struct dmat
+ Collaboration diagram for dmat:
Data Fields
M_ID id

to identify the array type.

real *__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

mem_t * mem

Memory management

async_t * async

async io

◆ cmat

struct cmat
+ Collaboration diagram for cmat:
Data Fields
M_ID id

to identify the array type.

comp *__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

mem_t * mem

Memory management

async_t * async

async io

◆ lmat

struct lmat
+ Collaboration diagram for lmat:
Data Fields
M_ID id

to identify the array type.

long *__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

mem_t * mem

Memory management

async_t * async

async io

◆ imat

struct imat
+ Collaboration diagram for imat:
Data Fields
M_ID id

to identify the array type.

int *__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

mem_t * mem

Memory management

async_t * async

async io

◆ ssp

struct ssp
+ Collaboration diagram for ssp:
Data Fields
M_ID id

to identify the array type

float *__restrict px

numerical values, size nzmax

long nx

number of rows

long ny

number of columns

char * keywords

the keywords as a string

file_t * fp

The file, to be saved upon free

long nzmax

maximum number of entries

spint *__restrict pp

col indices (size nzmax)

spint *__restrict pi

row indices, size nzmax

unsigned int * nref

reference counting for px, pp, pi

◆ zsp

struct zsp
+ Collaboration diagram for zsp:
Data Fields
M_ID id

to identify the array type

fcomplex *__restrict px

numerical values, size nzmax

long nx

number of rows

long ny

number of columns

char * keywords

the keywords as a string

file_t * fp

The file, to be saved upon free

long nzmax

maximum number of entries

spint *__restrict pp

col indices (size nzmax)

spint *__restrict pi

row indices, size nzmax

unsigned int * nref

reference counting for px, pp, pi

◆ dsp

struct dsp
+ Collaboration diagram for dsp:
Data Fields
M_ID id

to identify the array type

real *__restrict px

numerical values, size nzmax

long nx

number of rows

long ny

number of columns

char * keywords

the keywords as a string

file_t * fp

The file, to be saved upon free

long nzmax

maximum number of entries

spint *__restrict pp

col indices (size nzmax)

spint *__restrict pi

row indices, size nzmax

unsigned int * nref

reference counting for px, pp, pi

◆ csp

struct csp
+ Collaboration diagram for csp:
Data Fields
M_ID id

to identify the array type

comp *__restrict px

numerical values, size nzmax

long nx

number of rows

long ny

number of columns

char * keywords

the keywords as a string

file_t * fp

The file, to be saved upon free

long nzmax

maximum number of entries

spint *__restrict pp

col indices (size nzmax)

spint *__restrict pi

row indices, size nzmax

unsigned int * nref

reference counting for px, pp, pi

◆ map_t

struct map_t

OPD or Amplitude map defined on square/rectangular grids. with equal spacing on x/y. Can be casted to dmat.

+ Collaboration diagram for map_t:
Data Fields
union map_t __unnamed__
real ox

Origin in x

real oy

Origin in y

real dx

Sampling along x

real dy

Sampling along y

real h

Heigh conjugation of this surface

real vx
real vy

Wind velocity. Useful for atmospheric grid

real iac

Wind velocity. Useful for atmospheric grid Inter-actuator coupling. >0: use cubic influence function

real dratio

demagnification ratio (>1 for shrinking beam)

◆ rmap_t

struct rmap_t

Map with different x/y sampling. Can be cased to dmat

+ Collaboration diagram for rmap_t:
Data Fields
union rmap_t __unnamed__
real ox

Origin in x

real oy

Origin in y

real dx

Sampling along x (first dimension)

real dy

Sampling along y (second dimension)

real txdeg

the x tilt angle in degree wrt beam (90 is prep),

real tydeg

the y tilt angle in degree wrt beam (90 is prep),

real ftel

Effective focal length of the telescope

real fexit

The distance between the exit pupil and the focus

real fsurf

The distance between the tilted surface (M3) and the focus

◆ locstatcol_t

struct locstatcol_t

Store starting x,y for each col

+ Collaboration diagram for locstatcol_t:
Data Fields
real xstart

starting x of this column

real ystart

starting y of this column

long pos

starting index of this column

◆ locstat_t

struct locstat_t

Stores array of locstatcol_t

+ Collaboration diagram for locstat_t:
Data Fields
locstatcol_t * cols

Information about each column

real dx

Sampling of the grid along x

real dy

Sampling of the grid along y

real xmin

Minimum x

real ymin

Minimum y

long ncol

Number of consecutive columns found

long nx
long ny

Size for embedding

◆ loc_t

struct loc_t

Struct for coordinates like plocs, xloc, aloc etc. TODO: use rmat interface of mem_t?

+ Collaboration diagram for loc_t:
Data Fields
union loc_t __unnamed__
struct loc_t __unnamed__

◆ pts_t

struct pts_t

low left point of each subaperture.

don't change the leading elements. so that pts_t can be used as loc_t.

+ Collaboration diagram for pts_t:
Data Fields
union pts_t __unnamed__
int nxsa

number of cols per subaperture

int nysa

number of rows per subaperture

real dx

sampling of points in each subaperture

real dy

sampling of points in each subaperture. dy=dx normally required.

◆ cell

struct cell
+ Collaboration diagram for cell:
Data Fields
M_ID id

to identify the array type.

struct cell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct cell * m
void * dummy1

◆ ccell

struct ccell
+ Collaboration diagram for ccell:
Data Fields
M_ID id

to identify the array type.

struct cmat **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct cmat * m
void * dummy1

◆ zcell

struct zcell
+ Collaboration diagram for zcell:
Data Fields
M_ID id

to identify the array type.

struct zmat **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct zmat * m
void * dummy1

◆ dcell

struct dcell
+ Collaboration diagram for dcell:
Data Fields
M_ID id

to identify the array type.

struct dmat **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct dmat * m
void * dummy1

◆ scell

struct scell
+ Collaboration diagram for scell:
Data Fields
M_ID id

to identify the array type.

struct smat **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct smat * m
void * dummy1

◆ lcell

struct lcell
+ Collaboration diagram for lcell:
Data Fields
M_ID id

to identify the array type.

struct lmat **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct lmat * m
void * dummy1

◆ dspcell

struct dspcell
+ Collaboration diagram for dspcell:
Data Fields
M_ID id

to identify the array type.

struct dsp **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct dsp * m
void * dummy1

◆ sspcell

struct sspcell
+ Collaboration diagram for sspcell:
Data Fields
M_ID id

to identify the array type.

struct ssp **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct ssp * m
void * dummy1

◆ cspcell

struct cspcell
+ Collaboration diagram for cspcell:
Data Fields
M_ID id

to identify the array type.

struct csp **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct csp * m
void * dummy1

◆ zspcell

struct zspcell
+ Collaboration diagram for zspcell:
Data Fields
M_ID id

to identify the array type.

struct zsp **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct zsp * m
void * dummy1

◆ cccell

struct cccell
+ Collaboration diagram for cccell:
Data Fields
M_ID id

to identify the array type.

struct ccell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct ccell * m
void * dummy1

◆ zccell

struct zccell
+ Collaboration diagram for zccell:
Data Fields
M_ID id

to identify the array type.

struct zcell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct zcell * m
void * dummy1

◆ dccell

struct dccell
+ Collaboration diagram for dccell:
Data Fields
M_ID id

to identify the array type.

struct dcell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct dcell * m
void * dummy1

◆ sccell

struct sccell
+ Collaboration diagram for sccell:
Data Fields
M_ID id

to identify the array type.

struct scell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct scell * m
void * dummy1

◆ lccell

struct lccell
+ Collaboration diagram for lccell:
Data Fields
M_ID id

to identify the array type.

struct lcell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct lcell * m
void * dummy1

◆ ccccell

struct ccccell
+ Collaboration diagram for ccccell:
Data Fields
M_ID id

to identify the array type.

struct cccell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct cccell * m
void * dummy1

◆ zcccell

struct zcccell
+ Collaboration diagram for zcccell:
Data Fields
M_ID id

to identify the array type.

struct zccell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct zccell * m
void * dummy1

◆ dcccell

struct dcccell
+ Collaboration diagram for dcccell:
Data Fields
M_ID id

to identify the array type.

struct dccell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct dccell * m
void * dummy1

◆ scccell

struct scccell
+ Collaboration diagram for scccell:
Data Fields
M_ID id

to identify the array type.

struct sccell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct sccell * m
void * dummy1

◆ lcccell

struct lcccell
+ Collaboration diagram for lcccell:
Data Fields
M_ID id

to identify the array type.

struct lccell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct lccell * m
void * dummy1

◆ mapcell

struct mapcell
+ Collaboration diagram for mapcell:
Data Fields
M_ID id

to identify the array type.

struct map_t **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct map_t * m
void * dummy1

◆ rmapcell

struct rmapcell
+ Collaboration diagram for rmapcell:
Data Fields
M_ID id

to identify the array type.

struct rmap_t **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct rmap_t * m
void * dummy1

◆ loccell

struct loccell
+ Collaboration diagram for loccell:
Data Fields
M_ID id

to identify the array type.

struct loc_t **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct loc_t * m
void * dummy1

◆ mapccell

struct mapccell
+ Collaboration diagram for mapccell:
Data Fields
M_ID id

to identify the array type.

struct mapcell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct mapcell * m
void * dummy1

◆ rmapccell

struct rmapccell
+ Collaboration diagram for rmapccell:
Data Fields
M_ID id

to identify the array type.

struct rmapcell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct rmapcell * m
void * dummy1

◆ locccell

struct locccell
+ Collaboration diagram for locccell:
Data Fields
M_ID id

to identify the array type.

struct loccell **__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

struct loccell * m
void * dummy1

◆ map_t.__unnamed__

union map_t.__unnamed__
+ Collaboration diagram for map_t.__unnamed__:
Data Fields
__unnamed__ __unnamed__
dmat dmat[1]

◆ map_t.__unnamed__.__unnamed__

struct map_t.__unnamed__.__unnamed__
+ Collaboration diagram for map_t.__unnamed__.__unnamed__:
Data Fields
M_ID id

to identify the array type.

real *__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

mem_t * mem

Memory management

async_t * async

async io

◆ rmap_t.__unnamed__

union rmap_t.__unnamed__
+ Collaboration diagram for rmap_t.__unnamed__:
Data Fields
__unnamed__ __unnamed__
dmat dmat[1]

◆ rmap_t.__unnamed__.__unnamed__

struct rmap_t.__unnamed__.__unnamed__
+ Collaboration diagram for rmap_t.__unnamed__.__unnamed__:
Data Fields
M_ID id

to identify the array type.

real *__restrict p

The data pointer

long nx

number of rows

long ny

number of columns

char * keywords

The keywords as a string

file_t * fp

Opened file to be saved to

struct fft_t * fft

<For FFT plan

mem_t * mem

Memory management

async_t * async

async io

◆ loc_t.__unnamed__

union loc_t.__unnamed__
+ Collaboration diagram for loc_t.__unnamed__:
Data Fields
dmat dmat[1]
__unnamed__ __unnamed__

◆ loc_t.__unnamed__.__unnamed__

struct loc_t.__unnamed__.__unnamed__
+ Collaboration diagram for loc_t.__unnamed__.__unnamed__:
Data Fields
M_ID id
real * locx

x coordinates of each point [allocates memory for both locx and locy]

long nloc

number of points

long two

Constant 2. to be binary compatble with rmat

char * keywords

The keywords as a string

◆ loc_t.__unnamed__

struct loc_t.__unnamed__
+ Collaboration diagram for loc_t.__unnamed__:
Data Fields
real * locy

y coordinates of each point

locstat_t * stat

points to column statistics

map_t * map

point to the map used for identifying neihboring points.

unsigned int * nref

Reference counting

real dx

Sampling along x

real dy

Sampling along y

real ht

Conjugation height of the loc grid.

real iac

Inter-actuator coupling. >0: use cubic influence function for ray tracing

int npad

◆ pts_t.__unnamed__

union pts_t.__unnamed__
+ Collaboration diagram for pts_t.__unnamed__:
Data Fields
dmat dmat[1]
loc_t loc[1]
__unnamed__ __unnamed__

◆ pts_t.__unnamed__.__unnamed__

struct pts_t.__unnamed__.__unnamed__
+ Collaboration diagram for pts_t.__unnamed__.__unnamed__:
Data Fields
M_ID id
real * origx

The x origin of each subaperture. Contains memory for origy

long nsa

number of subapertures.

long two

Constant 2. to be binary compatble with rmat

char * keywords

The keywords as a string

void * dummy_fp

unused padding to align with cell (fp)

void * dummy_fft

unused padding to align with cell (fft)

void * dummy_mem

unused padding to align with mat (mem)

void * dummy_async

unused padding to align with mat (async)

real * origy

The y origin of each subaperture

locstat_t * stat

padding so that we can be casted to loc_t

map_t * map

treat pts_t as loc_t and compute the MAP

unsigned int * nref

Reference counting

__unnamed__ __unnamed__
real dsay

side length of subaperture

real dummy_ht

Place holder

real dummy_iac

Place holder

int npad

◆ pts_t.__unnamed__.__unnamed__.__unnamed__

union pts_t.__unnamed__.__unnamed__.__unnamed__
+ Collaboration diagram for pts_t.__unnamed__.__unnamed__.__unnamed__:
Data Fields
real dsa

side length of subaperture

real dsax

side length of subaperture

Macro Definition Documentation

◆ ARR

#define ARR (   T)

For FFT plan

◆ CELLDEF

#define CELLDEF (   T,
 
)
Value:
typedef struct S{\
ARR(struct T*);\
struct T* m; \
void *dummy1;/*pad the size to agree with MATARR*/ \
}S;

◆ MATARR

#define MATARR (   T,
 
)
Value:
struct S{\
ARR(T);\
mem_t *mem; \
async_t *async; \
}

◆ def_anyarray

#define def_anyarray (   T,
  S,
 
)
Value:
typedef union __attribute__((__transparent_union__)){\
types_anyarray(T,S);\
}C

◆ P

#define P (   ...)    P_GET5(_0,__VA_ARGS__,P4,P3,P2,P1,P0)(__VA_ARGS__)

Used to obtain elements of an array P(A,i) or P(A,i,j). Returns pointer if no index is given P(A).

◆ PCOL

#define PCOL (   A,
  iy 
)    ((A)->p+index_col((iy), (A)->nx, (A)->ny))

Used to obtain pointer to columns iy of array A

◆ PR

#define PR (   ...)    P_GET3(_0,__VA_ARGS__,PR2,PR1,P0)(__VA_ARGS__)

Calls P() with wrapping of index

◆ PCOLR

#define PCOLR (   A,
  iy 
)    PCOL((A),((A)->ny==1?0:iy))

Calls PCOL(A, iy) with wrapping of index

◆ PN

#define PN (   ...)    P_GET3(_0,__VA_ARGS__,PN2,PN1,PN0)(__VA_ARGS__)

Return number of elements

◆ NX

#define NX (   ...)    P_GET3(_0,__VA_ARGS__,NX2,NX1,NX0)(__VA_ARGS__)

Return number of rows (inner dimension)

◆ NY

#define NY (   ...)    P_GET3(_0,__VA_ARGS__,NY2,NY1,NY0)(__VA_ARGS__)

Return number of cols (outer dimension)