so3
1.3.0
Fast and exact Wigner transforms
|
#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>
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) |
Core algorithms to perform Wigner transform on the rotation group SO(§).
#define MAX | ( | a, | |
b | |||
) | ((a > b) ? (a) : (b)) |
#define MIN | ( | a, | |
b | |||
) | ((a < b) ? (a) : (b)) |
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
[out] | h | real space (alpha, beta, gamma) |
[in] | parameters | of h A fully populated parameters object. |
[in] | f | real space (alpha, beta, gamma) |
[in] | parameters | of f A fully populated parameters object. |
[in] | g | real space (alpha, beta, gamma) |
[in] | parameters | of g A fully populated parameters object. |
none |
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
[in] | parameters | for glmn Harmonic coefficients. |
[out] | parameters | for hlmn Harmonic coefficients |
[in] | parameters | for flmn Harmonic coefficients. |
none |
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_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
[out] | hlmn | Harmonic coefficients. Provide a buffer of size (L*L*(2*N-1). |
[in] | parameters | of hlmn A fully populated parameters object. |
[in] | flmn | Harmonic coefficients. |
[in] | parameters | of flmn A fully populated parameters object. |
[in] | glmn | Harmonic coefficients. |
[in] | parameters | of glmn A fully populated parameters object. |
none |
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 | ||
) |