so3  1.3.0
Fast and exact Wigner transforms
Macros | Functions
so3_conv.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <complex.h>
#include "so3/so3_types.h"
#include "so3/so3_error.h"
#include "so3/so3_sampling.h"
#include "so3/so3_core.h"
#include <ssht/ssht.h>
Include dependency graph for so3_conv.c:

Macros

#define MAX(a, b)   ((a > b) ? (a) : (b))
 
#define MIN(a, b)   ((a < b) ? (a) : (b))
 

Functions

void so3_conv_harmonic_convolution (SO3_COMPLEX(double) *hlmn, const so3_parameters_t *h_parameters, const SO3_COMPLEX(double) *flmn, const so3_parameters_t *f_parameters, const SO3_COMPLEX(double) *glmn, const so3_parameters_t *g_parameters)
 
so3_parameters_t so3_conv_get_parameters_of_convolved_lmn (const so3_parameters_t *f_parameters, const so3_parameters_t *g_parameters)
 
void so3_conv_get_parameters_of_convolved_lmn_void (so3_parameters_t *h_parameters, const so3_parameters_t *f_parameters, const so3_parameters_t *g_parameters)
 
void so3_conv_convolution (SO3_COMPLEX(double) *h, const so3_parameters_t *h_parameters, const SO3_COMPLEX(double) *f, const so3_parameters_t *f_parameters, const SO3_COMPLEX(double) *g, const so3_parameters_t *g_parameters)
 
void so3_conv_s2toso3_harmonic_convolution (SO3_COMPLEX(double) *hlmn, const so3_parameters_t *h_parameters, const SO3_COMPLEX(double) *flm, const SO3_COMPLEX(double) *glm)
 

Detailed Description

Core algorithms to perform Wigner transform on the rotation group SO(§).

Author
Martin Büttner
Jason McEwen

Macro Definition Documentation

◆ MAX

#define MAX (   a,
 
)    ((a > b) ? (a) : (b))

◆ MIN

#define MIN (   a,
 
)    ((a < b) ? (a) : (b))

Function Documentation

◆ so3_conv_convolution()

void so3_conv_convolution ( SO3_COMPLEX(double) *  h,
const so3_parameters_t h_parameters,
const SO3_COMPLEX(double) *  f,
const so3_parameters_t f_parameters,
const SO3_COMPLEX(double) *  g,
const so3_parameters_t g_parameters 
)

Compute the convolution of one signal with another in real space by doing the convolution in harmonic space h = f (*) g

Parameters
[out]hreal space (alpha, beta, gamma)
[in]parametersof h A fully populated parameters object.
[in]freal space (alpha, beta, gamma)
[in]parametersof f A fully populated parameters object.
[in]greal space (alpha, beta, gamma)
[in]parametersof g A fully populated parameters object.
Return values
none
Author
Martin Büttner
Jason McEwen

◆ so3_conv_get_parameters_of_convolved_lmn()

so3_parameters_t so3_conv_get_parameters_of_convolved_lmn ( const so3_parameters_t f_parameters,
const so3_parameters_t g_parameters 
)

Compute the parameters for the hlmn for the convolution of one signal with another in harmonic space h = f (*) g

Parameters
[in]parametersfor glmn Harmonic coefficients.
[out]parametersfor hlmn Harmonic coefficients
[in]parametersfor flmn Harmonic coefficients.
Return values
none
Author
Martin Büttner
Jason McEwen

◆ so3_conv_get_parameters_of_convolved_lmn_void()

void so3_conv_get_parameters_of_convolved_lmn_void ( so3_parameters_t h_parameters,
const so3_parameters_t f_parameters,
const so3_parameters_t g_parameters 
)

◆ so3_conv_harmonic_convolution()

void so3_conv_harmonic_convolution ( SO3_COMPLEX(double) *  hlmn,
const so3_parameters_t h_parameters,
const SO3_COMPLEX(double) *  flmn,
const so3_parameters_t f_parameters,
const SO3_COMPLEX(double) *  glmn,
const so3_parameters_t g_parameters 
)

Compute the convolution of one signal with another in harmonic space h = f (*) g

Parameters
[out]hlmnHarmonic coefficients. Provide a buffer of size (L*L*(2*N-1).
[in]parametersof hlmn A fully populated parameters object.
[in]flmnHarmonic coefficients.
[in]parametersof flmn A fully populated parameters object.
[in]glmnHarmonic coefficients.
[in]parametersof glmn A fully populated parameters object.
Return values
none
Author
Martin Büttner
Jason McEwen

◆ so3_conv_s2toso3_harmonic_convolution()

void so3_conv_s2toso3_harmonic_convolution ( SO3_COMPLEX(double) *  hlmn,
const so3_parameters_t h_parameters,
const SO3_COMPLEX(double) *  flm,
const SO3_COMPLEX(double) *  glm 
)