QPMS
Electromagnetic multiple scattering library and toolkit.
Functions | Variables
indexing.h File Reference

Various index conversion functions. More...

#include "qpms_types.h"
#include <math.h>
#include "optim.h"
Include dependency graph for indexing.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

static qpms_y_t qpms_mn2y (qpms_m_t m, qpms_l_t n)
 
static qpms_lm_t qpms_y2n (qpms_y_t y)
 
static qpms_m_t qpms_yn2m (qpms_y_t y, qpms_l_t n)
 
static void qpms_y2mn_p (qpms_y_t y, qpms_m_t *m, qpms_l_t *n)
 
static qpms_y_t qpms_lMax2nelem (qpms_l_t lmax)
 
static qpms_y_t qpms_mn2y_sc (qpms_m_t m, qpms_l_t n)
 
static qpms_lm_t qpms_y2n_sc (qpms_y_t y)
 
static qpms_m_t qpms_yn2m_sc (qpms_y_t y, qpms_l_t n)
 
static void qpms_y2mn_sc_p (qpms_y_t y, qpms_m_t *m, qpms_l_t *n)
 
static qpms_y_t qpms_lMax2nelem_sc (qpms_l_t lmax)
 
static qpms_uvswfi_t qpms_tmn2uvswfi (qpms_vswf_type_t t, qpms_m_t m, qpms_l_t n)
 Conversion from VSWF type, order and degree to universal index.
 
static qpms_errno_t qpms_uvswfi2tmn (qpms_uvswfi_t u, qpms_vswf_type_t *t, qpms_m_t *m, qpms_l_t *n)
 Conversion from universal VSWF index u to type, order and degree. More...
 
static qpms_errno_t qpms_uvswfi2ty (qpms_uvswfi_t u, qpms_vswf_type_t *t, qpms_y_t *y)
 Conversion from universal VSWF index u to type and the traditional layout index (l > 0). More...
 
static qpms_errno_t qpms_uvswfi2ty_l (qpms_uvswfi_t u, qpms_vswf_type_t *t, qpms_y_t *y)
 Conversion from universal VSWF index u to type and the traditional (vector) layout index. More...
 
static qpms_m_t qpms_uvswfi2m (qpms_uvswfi_t u)
 Extract degree m from an universal VSWF index u.
 

Variables

static const qpms_uvswfi_t QPMS_UI_L00 = 0
 Constant denoting the l=0, m=0 longitudinal spherical vector wave.
 

Detailed Description

Various index conversion functions.

Function Documentation

◆ qpms_uvswfi2tmn()

static qpms_errno_t qpms_uvswfi2tmn ( qpms_uvswfi_t  u,
qpms_vswf_type_t t,
qpms_m_t m,
qpms_l_t n 
)
inlinestatic

Conversion from universal VSWF index u to type, order and degree.

Returns a non-zero value if the u value is invalid.

◆ qpms_uvswfi2ty()

static qpms_errno_t qpms_uvswfi2ty ( qpms_uvswfi_t  u,
qpms_vswf_type_t t,
qpms_y_t y 
)
inlinestatic

Conversion from universal VSWF index u to type and the traditional layout index (l > 0).

Does not allow for longitudinal waves.

◆ qpms_uvswfi2ty_l()

static qpms_errno_t qpms_uvswfi2ty_l ( qpms_uvswfi_t  u,
qpms_vswf_type_t t,
qpms_y_t y 
)
inlinestatic

Conversion from universal VSWF index u to type and the traditional (vector) layout index.

Does allow for longitudinal waves, but returns an error if l == 0. (The only legit VSWF with l = 0 is the longitudinal one; u == 0.)